Как получить токен авторизации для MS graph api, используя утверждение saml - PullRequest
0 голосов
/ 22 января 2020

Мы используем sso для входа в Office365 и наш собственный номер anet. Процесс sso возвращает утверждение saml2, которое доступно моему коду.

Я надеялся использовать это для получения токена авторизации для доступа к графику API.

Я следовал инструкциям здесь : https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-saml-bearer-assertion

, и я получаю сообщение об ошибке: «AADSTS50107: Запрошенный объект области федерации 'https://sts.windows.net/xyzzy/' не существует."

Я пришел к выводу, что это связано с тем, что наш домен Office365 является управляемым, а не федеративным, и что этот поток не будет работать с управляемым доменом (хотя не очевидно, почему нет).

Я также следовал инструкциям здесь: https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-oauth2-on-behalf-of-flow#saml -утверждения-полученные-с-oauth20-obo-flow

, и я получаю другую ошибку: "AADSTS700001: Приложение : spn: xyzzy необходимо подписаться на необязательное требование «aio» для «От имени потока» для работы с токенами SAML, выпущенными для этого приложения ». Приложение, на которое он ссылается здесь, - это приложение, используемое в SSO, когда мы изначально получили утверждение saml (а не приложение, используемое для получения токена авторизации для Graph API).

Я не знаю, как согласиться на необязательное требование «aio». Эта претензия отсутствует в списке в конфигурации приложения.

Я был бы признателен за любую помощь в преодолении любой из этих двух ошибок или за любой альтернативный подход, который позволил бы мне получить токен авторизации. для графа api, используя утверждение saml.

Пример утверждения saml, которое я пытаюсь использовать:

<Assertion xmlns="urn:oasis:names:tc:SAML:2.0:assertion" ID="_nnnnnnnn-9ed2-4511-8f04-nnnnnnnnn" IssueInstant="2020-01-16T16:12:44.389Z" Version="2.0">
  <Issuer>https://sts.windows.net/nnnnnnnn-187d-415b-87e6-nnnnnnnn8a01/</Issuer>
  <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
    <SignedInfo>
      <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
      <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
      <Reference URI="#_nnnnnnnn-9ed2-4511-8f04-nnnnnnnn1800">
        <Transforms>
          <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
          <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
        </Transforms>
        <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
        <DigestValue>mEWbTMcoHmsT1bcWK2/nnnnnnnnm+tpKxEgjXCo7uU=</DigestValue>
      </Reference>
    </SignedInfo>
    <SignatureValue>rEGA7emFjnJhAfUQ24PXcIOPAYBA5RXoj8+MsA2PnXDMMs2NfQkfp7F4n7z5v8PEJevTuqVpCVpSKBUL1pZDcKSs4mQ/gaPyFXD7u7yMyOSSyPDKmYHEVz4COA1JFTzvrQT5KTsNl0wEAIkwZcQKC+uSMr7Uj36bthqnnnnnnnnF8LFopSTayXa2IlxnccY/7zUxs5Sz1ZVCs8cqS81LJV7H2QGbNDJ1FXO9DYFkUdN81h5Ik+tXNhXnVFV/P0GTkX6KRYoVuqzZZQqgSoxsnAb4irKRYSSZ8cXsi9af2b+gIVZGJsdiMz7MLbdV2yLDjokKbNrkwQAO+VaUeZTUA==</SignatureValue>
    <KeyInfo>
      <X509Data>
        <X509Certificate>MIIDBTCCAe2gAwIBAgIQMCJcgWf4l5xPpeoEwB7DKDANBgkqhkiG9w0BAQsFADAtMSswKQYDVQQDEyJhY2NvdW50cynnnnnnnnNjb250cm9sLndpbmRvd3MubmV0MB4XDTE5MTExNTAwMDAwMFoXDTI0MTExNDAwMDAwMFowLTErMCkGA1UEAxMiYWNjb3VudHMuYWNjZXNzY29udHJvbC53aW5kb3dzLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANF4YcKZhKTfowwWqZ84RW7bxFNgaSy3Gi85V5uJpU9jMCmZV0VFGptryNFEQ1GESmmuDutgQlkkhjr9ixkOrTA+aFPg6pLn+OG6NYS7nyKgAC1MprLH0bq06y3dH6lQPWQhd3wPP+8UIua9+9JuIfhu9Xs/HhN5cYlT5cEniV0aWuUMxgPAKcG1xolfupYhlOHjFwVN/QOaxcuk3YqGguD+sZ7PiHcJSzFnTkdvD+DtMoW1U6nDf5FuDeAEKJ7JQf7RjiRoViYxZHKrEPHG4iZ+kOhV6DQA16ISTt7ALXVB8gTTF3OvItubk2E3v6sgirgtvdE5Mkd4MTJcO67bgdUCAwEAAaMhMB8wHQYDVR0OBBYEFEXiTeLGkA2LgAjQOrT2KChpgwCgMA0GCSqGSIb3DQEBCwUAA4IBAQA6GqtYZDQzym0yxfL2NnlSbJP/lLhSQOqbPBdN6DWQ/3duk+e08Ix5qy63hzW+qQR0PAkFEcooL5+bdheS66tFJpVejEcqCSKUVvwOUe6GY/ju752dlB7anBB9An362khehCxqydYNS5Igl0rtcP7dKC3ZBn1m2B9ULsyx46iNpfHQHHv9NKU2vVq2CtNc95CFktwjUwlyWMgbfI/DzPX/nnnnnnnnsuVVBO7+jIaBmi0XGqudooZkqgIrvnfNMM13Gy78TUNHsCiAQEwZ/L17yNbzotNGxAoPfuXldbD52MQNOsA7WhH+j8qFWY6gZzTN4NpVtuW4m04TCEFexnTz</X509Certificate>
      </X509Data>
    </KeyInfo>
  </Signature>
  <Subject>
    <NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">nnnnnnnnavitA3FPq9Bqtu6d3UlysiFOxjMX_je3u-k</NameID>
    <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"/>
  </Subject>
  <Conditions NotBefore="2020-01-16T16:07:44.248Z" NotOnOrAfter="2020-01-16T17:12:44.248Z">
    <AudienceRestriction>
      <Audience>spn:nnnnnnnn-900b-4a82-b65f-3975nnnnnnnn</Audience>
    </AudienceRestriction>
  </Conditions>
  <AttributeStatement>
    <Attribute Name="http://schemas.microsoft.com/identity/claims/tenantid">
      <AttributeValue>nnnnnnnn-187d-415b-87e6-295ennnnnnnn</AttributeValue>
    </Attribute>
    <Attribute Name="http://schemas.microsoft.com/identity/claims/objectidentifier">
      <AttributeValue>nnnnnnnn-2111-48e1-ac4b-726nnnnnnnn</AttributeValue>
    </Attribute>
    <Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name">
      <AttributeValue>nnnnnn.nnnnnn@nn.nnng</AttributeValue>
    </Attribute>
    <Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname">
      <AttributeValue>nnnnnn</AttributeValue>
    </Attribute>
    <Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname">
      <AttributeValue>nnnnn</AttributeValue>
    </Attribute>
    <Attribute Name="http://schemas.microsoft.com/identity/claims/displayname">
      <AttributeValue>nnnnnnnnnnnnnnnnn</AttributeValue>
    </Attribute>
    <Attribute Name="http://schemas.microsoft.com/identity/claims/identityprovider">
      <AttributeValue>https://sts.windows.net/nnnnnnnn-187d-415b-87e6-295e9nnnnnnnn/</AttributeValue>
    </Attribute>
    <Attribute Name="http://schemas.microsoft.com/claims/authnmethodsreferences">
      <AttributeValue>http://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/password</AttributeValue>
    </Attribute>
  </AttributeStatement>
  <AuthnStatement AuthnInstant="2020-01-14T15:47:10.396Z">
    <AuthnContext>
      <AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password</AuthnContextClassRef>
    </AuthnContext>
  </AuthnStatement>
</Assertion>
...