Я пытаюсь вернуть заявку на группу в настраиваемой политике RegistrationSign в Azure B2 C в тестовое приложение SAML, которое можно найти здесь https://samltestapp2.azurewebsites.net/. Вот что я сделал до сих пор: -
Создал HTTP-триггер PowerShell Azure Функция, которая возвращает разделенный запятыми список групп, к которым принадлежит пользователь, после запроса MS Graph API . Я называю это за пределами B2 C, и он работает нормально.
В файле TrustFrameworkExtensions. xml добавлен элемент типа утверждения, например
<BuildingBlocks>
<ClaimsSchema>
<ClaimType Id="groups">
<DisplayName>Comma delimited list of group names</DisplayName>
<DataType>stringCollection</DataType>
<DefaultPartnerClaimTypes>
<Protocol Name="OAuth2" PartnerClaimType="groups" />
<Protocol Name="OpenIdConnect" PartnerClaimType="groups" />
<Protocol Name="SAML2" PartnerClaimType="http://schemas.microsoft.com/ws/2008/06/identity/claims/groups" />
</DefaultPartnerClaimTypes>
<UserInputType>Readonly</UserInputType>
</ClaimType>
</ClaimsSchema>
В TrustFrameworkExtensions. xml Я также добавил технический профиль и этап оркестрации, например, так
<TechnicalProfile Id="GetUserGroups">
<DisplayName>Retrieves security groups assigned to the user</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ServiceUrl">https://morphitgraphapicall.azurewebsites.net/api/GetGroupsFromGraph?objectID=objectId</Item>
<Item Key="AuthenticationType">None</Item>
<Item Key="SendClaimsIn">QueryString</Item>
<Item Key="AllowInsecureAuthInProduction">true</Item>
</Metadata>
<InputClaims>
<InputClaim Required="true" ClaimTypeReferenceId="objectId" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="groups" />
</OutputClaims>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
...
<OrchestrationStep Order="7" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="GetUserGroups" TechnicalProfileReferenceId="GetUserGroups" />
</ClaimsExchanges>
</OrchestrationStep>
В файле проверяющей стороны добавлено утверждение вывода, например:
Заявление на вывод файла проверяющей стороны
Но я не могу получить заявление о группах, переданное приложению SP. Я могу сказать, что REST API вызывается, потому что в плане потребления Azure функций происходит холодный запуск, если я не вызывал функцию какое-то время, что приводит к паузе после входа в систему.
Спасибо.