通过SAML - NameID格式的Microsoft Azure SSO



我正在尝试使用SAML将我的应用程序与Microsoft Azure SSO集成。与Google SSO SAML不同,它们的XML文件不包含Name ID格式。因此,我假设它是"urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"

SSO登录可以工作,但是从Microsoft Azure返回的属性看起来很奇怪。我期望的是用户信息(例如,我在控制面板中设置的名、姓和其他属性),相反,它返回类似于:

[samlUserdata] => Array
(
[http://schemas.microsoft.com/identity/claims/tenantid] => Array
(
[0] => 123456-a43f-4dfd-8888-f5fa5e547790
)
[http://schemas.microsoft.com/identity/claims/objectidentifier] => Array
(
[0] => 123456-e20c-46f1-8888-204cc360d7d8
)
[http://schemas.microsoft.com/identity/claims/identityprovider] => Array
(
[0] => https://sts.windows.net/123456-a43f-4dfd-8888-f5fa5e547790/
)
[http://schemas.microsoft.com/claims/authnmethodsreferences] => Array
(
[0] => urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
)
)

我错过了什么?

注:我正在使用一个登录PHP库。它可以与Google一起使用。

因此我假设它是"urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"

我认为更合适的格式应该是urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified,特别是如果你要让它未指定

我错过了什么?

似乎您的SAML2 IdP, Microsoft Azure SSO没有正确设置为向您发布声明/属性。我不认为这与命名格式有任何关系;它是关于IdP配置及其属性释放策略的。您可以通过查看应该传递给SP的原始SAML2 XML响应来交叉检查这一点。如果您在其中没有找到任何声明/属性,则IdP没有向您发布任何内容,这是需要与他们一起处理的事情。

Azure AD数据正确。

在Azure AD中,很多属性都是GUID,这就是你所看到的。

你会注意到"authnmethodsreferences">

如果您传递给定的姓名,姓氏等,它们也将是纯文本。

相关内容

最新更新