Azure B2 C - отправлять группы в заявках на SAML SP с помощью REST API, который запрашивает график - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь вернуть заявку на группу в настраиваемой политике RegistrationSign в Azure B2 C в тестовое приложение SAML, которое можно найти здесь https://samltestapp2.azurewebsites.net/. Вот что я сделал до сих пор: -

  1. Создал HTTP-триггер PowerShell Azure Функция, которая возвращает разделенный запятыми список групп, к которым принадлежит пользователь, после запроса MS Graph API . Я называю это за пределами B2 C, и он работает нормально.

  2. В файле 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>
    
  3. В 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>
    
  4. В файле проверяющей стороны добавлено утверждение вывода, например:

Заявление на вывод файла проверяющей стороны

Но я не могу получить заявление о группах, переданное приложению SP. Я могу сказать, что REST API вызывается, потому что в плане потребления Azure функций происходит холодный запуск, если я не вызывал функцию какое-то время, что приводит к паузе после входа в систему.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...