在SAML2.0 auth之后调用Graph api。如何获得所需的Auth令牌

时间:2018-03-26 10:10:03

标签: azure oauth azure-active-directory saml-2.0

我们的网络aap通过SAML2.0与Azure AD进行身份验证,类似于this.

作为回报,我们获得了SAML断言(SAML令牌)。

但是,当登录的用户拥有超过150个组时,响应不包含组信息(因此令牌大小不会超过HTTP标头大小限制。this上的更多信息)

但它返回的是一个图表Api,可以获得类似https://graph.windows.net/ {tenant id} / users / {user id} / getMemberObject的组信息。

通过this

我知道我需要附加带有http请求的Auth持票令牌才能成功点击图表api。 我的问题是如何获得Auth持票令牌? 如何使用SAML令牌获取Auth持票令牌?

其他有用的链接 - link1 link2

1 个答案:

答案 0 :(得分:1)

我仅使用ADAL库使用了非SAML图API,但是从docs看来,NameID似乎是请求图表访问令牌的基础API:

<Subject>
  <NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">m_H3naDei2LNxUmEcWd0BZlNi_jVET1pMLR6iQSuYmo</NameID>
  <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer" />
</Subject>

从此post

  

“此处客户端从SAML身份获取SAML承载断言   然后,Provider从授权服务器请求访问令牌   使用SAML承载断言作为身份证明“​​

并且此article表示整个Assertion用于获取访问令牌,您可以在其中:

  

在添加之前使用base64url编码对整个断言进行编码   它作为POST请求的一部分