代码之家  ›  专栏  ›  技术社区  ›  GoClimbColorado

Windows Server 2016 AD FS 4.0使用OAUTH JWT和共享密钥验证外部Web应用程序

  •  0
  • GoClimbColorado  · 技术社区  · 7 年前

    我们正在尝试让SaaS产品根据Windows Server 2016上运行的AD FS 4.0服务进行身份验证。

    web应用程序是使用JWT为SSO设置的,允许我们设置 共享机密 ,则, 登录URL 注销URL

    我让应用程序重定向到AD FS登录屏幕 https://hostname/adfs/oauth2/authorize 并根据active directory进行身份验证。从那里它返回一个我知道需要转到的代码值 https://hostname//adfs/oauth/token 但我被困在这里了。

    我是否需要构建一个web服务,从授权端点接收代码,将其发布到令牌端点,然后使用JWT重定向回web应用?或者,如果我正确配置AD FS,它可以自己完成吗?

    我想要的是,web应用程序重定向到AD FS登录屏幕(完成),AD FS根据AD进行身份验证(完成),然后使用JWT重定向回web应用程序。

    编辑:

    以下是我对Server 2016 AD FS 4.0的要求。我是否需要创建自己的ADF/授权->代码->ADF/代币->jwt->应用程序URL处理服务?

    https://support.zendesk.com/hc/en-us/articles/203663816-Setting-up-single-sign-on-with-JWT-JSON-Web-Token-

    更新时间:

    看起来您必须控制客户端应用程序,但在使用第三方SaaS时,情况并非如此。因此,我们需要实施 myapi 这样。

    1. SaaS重定向到/adfs/oauth2/authorize
    2. AD FS重定向到/myapi/?代码=ab2。。3立方英尺
    3. myapi 职位 code 收件人/adfs/oauth2/令牌
    4. AD FS响应包含JWT
    5. myapi 重定向到SaaS with/?jwt=令牌
    1 回复  |  直到 7 年前
        1
  •  0
  •   rbrayb    7 年前

    此流程称为授权代码授予。

    良好的图表 here

    获取代码,将其发送到/令牌端点,获取访问令牌,将其发送到授权标头中的API。

    如果SaaS产品有一个OpenID连接堆栈,它应该自动执行此操作。SaaS产品需要驱动流程。

    更新时间:

    使用ADFS唯一需要做的就是配置它。无需编程。

    您需要对客户端进行编码。

    客户端发送到/授权终结点。

    ADFS用代码响应。

    客户端将代码发送到/令牌端点。

    ADFS使用令牌进行响应。

    客户端向API发送令牌。