【问题标题】:create a windows phone multitenant app with azure ad使用 azure ad 创建一个 windows phone 多租户应用程序
【发布时间】:2014-04-08 00:14:50
【问题描述】:

我正在构建一个使用 Azure Active Directory 进行身份验证的 Windows Phone 8 应用程序。这将是一个多租户应用程序,一旦用户登录,我想从 AD 中的租户那里读取某些基本信息。

我计划使用http://azure.microsoft.com/en-us/documentation/articles/mobile-services-how-to-register-active-directory-authentication/ 作为起点,并将在我的应用程序中使用浏览器控件将用户带到标准的 azure AD 登录页面。

所以这是我的问题,虽然我知道如何使用 Azure AD Graph API 来查找有关我自己的租户的特定信息,但我如何找出外部用户的租户域名以便我可以使用 Graph API 来查找信息关于他们的租户/AD?如果我在自己的应用程序中创建了登录名和密码输入字段,我可以很容易地找出他们的域,但是因为我将它们重定向到 Azure AD 服务......我很难弄清楚我将如何确定他们的域名,然后我可以对其进行 Graph API 查询?

感谢您的帮助!

【问题讨论】:

    标签: windows-phone-7 authentication azure-active-directory


    【解决方案1】:

    在您的授权请求中,使用 code+id_token response_type。您的客户端应用程序将收到一个 id_token - 一个包含用户信息的 jwt,包括可用于构建 Graph API 查询的用户租户 ID (tid)。

    请求:

    login.windows.net/common/oauth2/authorize?response_type=code+id_token&client_id=f034219b-9048-452a-aa0c-ce7661fcd2a0&resource=<graph api resource id>&redirect_uri=<your redirect uri>&nonce=7a16fa03-c29d-4e6a-aff7-c021b06a9b27
    

    回复:

    <redirect_uri>?code=AwABAAAAvPM1KaPlrEqdFSBzjqfTGB_K3PrvqLGyrC3bsLKpSYcEMwgiAbLpF6yKUxMRX3P1g3GqXDmmtKUkuVr0HjiWhO5EuW5RExGaucKvRhSes9Fzxm4Mxsoz0_8hbAwdC7zn8e74ENcgWwat6OLpSkYLFvBuJFvhp8k0ng3VIxJm5iMP7iC7DM1XGO5ECnwjz-Iu6MsiTwRG78L8p1x8vudlF-uAyDBkINiGRI-cFv6Q65xoU-uNWuiGBQ7H03OkDVnu29LYjrwGmJvq6yL1wzL2SyBXR8fKmmgqMTqu8jz0I94oTPYYtv-Cnq2hXP8_QpaDjiHHM6v9ymkSYnVNvSlkDgeqhwnqoU29DOEYQLNuAewzbWkIsCQJl9SCmcTtJ8Xsh75HV2KbVMHKAfZ0yLUggCAA&id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1THdqcHdBSk9NOW4tQSJ9.eyJhdWQiOiJmMDM0MjE5Yi05MDQ4LTQ1MmEtYWEwYy1jZTc2NjFmY2QyYTAiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC82MmUxNzNlOS0zMDFlLTQyM2UtYmNkNC0yOTEyMWVjMWFhMjQvIiwiaWF0IjoxMzk3MDY0NTE3LCJuYmYiOjEzOTcwNjQ1MTcsImV4cCI6MTM5NzA2ODQxNywidmVyIjoiMS4wIiwidGlkIjoiNjJlMTczZTktMzAxZS00MjNlLWJjZDQtMjkxMjFlYzFhYTI0Iiwib2lkIjoiODRlNjg1MmMtYjJlZS00ODMwLTkyMjYtNjYwNzYzOWU2Mzc0IiwidXBuIjoiYmFkYW1zQGR1c2h5YW50Z2lsbC5jb20iLCJ1bmlxdWVfbmFtZSI6ImJhZGFtc0BkdXNoeWFudGdpbGwuY29tIiwic3ViIjoiRGVldTRUTmxPZjMwSVA2YnBBRVJlOTRNNHJ2VHpfeDdFWE5UYkNXeTFTbyIsImZhbWlseV9uYW1lIjoiQWRhbXMiLCJnaXZlbl9uYW1lIjoiQnJhZCIsIm5vbmNlIjoiN2ExNmZhMDMtYzI5ZC00ZTZhLWFmZjctYzAyMWIwNmE5YjI3IiwiY19oYXNoIjoiM01FYmNleUFYUlBtOGVMRE11cEpUZyJ9.L4FcbHGCTROgDT4Hpuc2kczSOh7HooLpUTQVpYve76Ucwyl4pFmb1IDKsES_d0stK6kyr2__Qs3ckMs5lm0SnsMuI3KIK53j3H_KeaswfbD5AYOm7gbEqA4VDcjQRVbEHW4Lyd8ij4b-Xss9O2N6ZbSKRZ-uuM78y5-lmQZ5KsRsdg7B9sLfHsRTjbrT9YryPUotbivUg3ioSZ9g3PYZwb0XiRO9enM9nYjz8rZXINB3ODr7-ccr4_n8AOWwvPunM1rXLxTZTEO3ADDU-anK_2OLH6Ab_6OMKljzigJbciol7DvBXaNZf7guHvDXV6VXTnPim2XhSOp_tcaVRj4yAA&session_state=b41d7528-2c8c-4e76-b17f-0732e8697798
    

    解码的 id_token jwt:

    aud: f034219b-9048-452a-aa0c-ce7661fcd2a0
    iss: https://sts.windows.net/62e173e9-301e-423e-bcd4-29121ec1aa24/
    iat: 1397064517
    nbf: 1397064517
    exp: 1397068417
    ver: 1.0
    **tid**: 62e173e9-301e-423e-bcd4-29121ec1aa24
    oid: 84e6852c-b2ee-4830-9226-6607639e6374
    upn: badams@dushyantgill.com
    unique_name: badams@dushyantgill.com
    sub: Deeu4TNlOf30IP6bpAERe94M4rvTz_x7EXNTbCWy1So
    family_name: Adams
    given_name: Brad
    nonce: 7a16fa03-c29d-4e6a-aff7-c021b06a9b27
    c_hash: 3MEbceyAXRPm8eLDMupJTg
    

    【讨论】:

    • 谢谢。就是这样。我能够从“tid”中选择租户 ID,并在我的应用中使用它来识别租户的域。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-20
    • 2017-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多