Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Azure AD による Web API の 保護

1,373 views

Published on

Tech Summit 2017 で使用した資料です

Published in: Technology
  • Be the first to comment

Azure AD による Web API の 保護

  1. 1. Microsoft Tech Summit 2017
  2. 2. Azure AD を使用して、 ここを誰から、どう守るか?
  3. 3. PowerShell https://testpsfunction.azurewebsites.net/api/HttpTriggerPowerShell1?code= TvXkdY2WKsev/wFkpyik09RZosbMmNsAe0gg8G3Tpsb8uV28BodA4Q== Functions Key
  4. 4. PowerShell
  5. 5. Multitenant 設定 PowerShell
  6. 6. Function Key URL は外部から隠ぺい
  7. 7. 今回のターゲット
  8. 8. B2C
  9. 9. API
  10. 10. APIAzure API Management Application Subscription Key https://xxxxxxxxx.portal.azure-api.net/signin-aad
  11. 11. ③ ユーザーIDやロールによって API に対する権限を変えたい
  12. 12. APIAzure API Management Application
  13. 13. <tenant ID> <tenant ID> <tenant ID>
  14. 14. • validate-jwt : JWT を検証して操作を承認する  RS256 署名アルゴリズム ー OpenID 構成エンドポイントからキーを受け取る • 認証ポリシー https://docs.microsoft.com/ja-jp/azure/api-management/api-management-policy-reference
  15. 15. <policies> <inbound> <base /> <rewrite-uri template="/HttpTriggerPowerShell1?code=TvXkdY2WKsev/wFxxxxx==&amp;name={username}" /> </inbound> <backend> <base /> </backend> <outbound> <base /> </outbound> <on-error> <base /> </on-error> </policies>
  16. 16. ・・・・ <inbound> <base /> <rewrite-uri template="/HttpTriggerPowerShell1?code=TvXkdY2WKsev/wFxxxxx==&amp;name={username}" /> <validate-jwt failed-validation-error-message="Unauthorized. Access token is missing or invalid." failed-validation-httpcode="401" header-name="Authorization"> <openid-config url=“https://login.microsoftonline.com/テナントURL/.well-known/openid-configuration" /> <audiences> <audience>チェックしたいアプリケーションのクライアントID</audience> </audiences> <required-claims> <claim name=“チェックしたいクレーム名" match="all"> <value>クレーム内の値</value> </claim> </required-claims> </validate-jwt> <inbound> ・・・・
  17. 17. <validate-jwt failed-validation-error-message="Unauthorized. Access token is missing or invalid." failed-validation-httpcode="401" header-name="Authorization"> <openid-config url="https://login.microsoftonline.com/pharaojp.onmicrosoft.com/.well-known/openid- configuration" /> <audiences> <audience>e55757f2-92ba-4422-8aa1-2ed25cbeece2</audience> </audiences> <required-claims> <claim name="name" match="all"> <value>admin</value> </claim> </required-claims> </validate-jwt>
  18. 18. https://jwt.io/ OIDCトークンの場 合は RS256を選択
  19. 19. IdPに応じた プロトコルを実装
  20. 20. APIAzure API Management Application
  21. 21. 基本的に、プロトコ ルは意識しない
  22. 22. Weibo QQ WeChat a preview preview OIDC/OAuth 2.0 で実装
  23. 23. Weibo QQ WeChat a preview Identity Experience Framework • SAML 2.0 • OAuth 2.0 • OIDC Preview Identity Experience Framework • SAML 2.0 • OAuth 2.0 • OIDC Preview
  24. 24. c9687145-xxxx-xxxx-xxxxxxxxxxxx
  25. 25. .auth/login/aad/callback を追加
  26. 26. テナントID 控えておいた「アプリケーションID」 を入力 https//sts.windwos.net/<テナントID>
  27. 27. https://testpsfunction.azurewebsites.net/api/HttpTriggerPo werShell1?code=TvXkdY2WKsev/wFkpyik09RZosbMmNsAe 0gg8G3Tpsb8uV28BodA4Q==

×