javascript - ADFS 3.0 - 扩展功能

标签 javascript adfs adfs3.0

我目前正在实现一个包含 ADFS 3.0 和多因素身份验证的解决方案。我已按照 TechNet ( https://msdn.microsoft.com/en-GB/Library/dn783423.aspx?f=255&MSPPError=-2147217396 ) 中的步骤设置示例适配器,效果很好。 我现在想延长它,但遇到了一些问题。我在网络和 stackoverflow 上搜索了类似的内容,但找不到任何内容,所以我将它们全部发布在这里。不确定我是否需要将其分成不同的问题:

  1. 我需要扩展适配器,以便部分 html 由外部脚本呈现,即我需要添加一个额外的脚本,以便在呈现 adfs 适配器 html 时加载。 据我所知,可以修改主题以在 onload.js 中包含额外的 javascript,但我不想走这条路,因为脚本确实需要从外部加载。

我能想到的唯一可行的方法是在动态加载脚本的html中注入(inject)javascript,如下所示:

var script =document.createElement('script')
fileref.setAttribute("type","text/javascript")
fileref.setAttribute("src", <my_script_loaded_over_http>)

fileref.onload =
        function() {
         //call script method
        };

但是由于外部脚本的某些逻辑依赖于窗口的“onload”事件,因此它无法工作,因为加载得太晚了..

这可能吗?

  • 适配器是否可以注入(inject)新的响应 header ? (我假设不是)

  • 是否有一种标准方法可以向适配器 dll 提供配置文件,以便可以在运行时更改某些值,而无需部署新的 dll?如果没有,将上述配置文件写入 adfs 文件夹并从那里读取是否安全?

  • 非常感谢

    最佳答案

    我自己设法解决了这个问题:

    1- IAdapterPresentationForm 接口(interface)提供了一种方法来返回我想要包含的任何脚本或 css: string GetFormPreRenderHtml(int lcid) 例如:

     public string GetFormPreRenderHtml(int lcid){
            StringBuilder sb = new StringBuilder();
            sb.Append("<script src='http://myjs.js' type='text/javascript'></script>");
            sb.Append("<link rel='stylesheet' type='text/css' href='http://mycss.css' />");
            return sb.ToString();
     }
    

    2-一点也不

    3- 注册适配器时可以使用以下方式传递配置文件: Register-AdfsAuthenticationProvider -TypeName $typeName -Name -Verbose -ConfigurationFilePath 。

    管道将为您打开一个流,并将其传入:

    void OnAuthenticationPipelineLoad(IAuthenticationMethodConfigData configData)
    

    引用:http://blogs.recneps.net/category/ADFS

    关于javascript - ADFS 3.0 - 扩展功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35418952/

    相关文章:

    javascript - 如何通过用省略号替换某些字符来缩短字符串

    javascript - 嵌入跟踪某些 DOM 元素点击的代码(问题出在重定向的链接/按钮上)

    Azure/网络场就绪的 SecurityTokenCache

    node.js - Node js 的最佳 ADFS 协议(protocol)支持

    SAML 2.0 声明未通过 ADFS

    javascript - LokiJS 自动加载回调不起作用

    javascript - 向对象添加原型(prototype)会出现错误

    java - 在java中登录adfs并从saml响应中获取断言

    c# - 创建 WCF Rest 服务以接受 SAML 并对 Windows 用户进行身份验证

    azure-active-directory - 错误 : AADSTS90015: Requested query string is too long(while doing ADFS)