Open棟梁Project - マイクロソフト系技術情報 Wiki

目次

概要

モジュラーデザイン

ユースケースに対応するため、

多様な環境をサポートできる。

仕様一覧

OAuth 2.0に認証結果とプロフィールの受渡し機能を追加

OAuth 2.0に認証結果とプロフィールの受渡し機能のみを追加した仕様

OpenID Connectのコアな機能(難しいことも可能に)

リクエスト内の細かいクレーム指定や認証コンテキストの指定

関連仕様

3つの認証のシーケンス

Authorization Code Flow

以下で説明しているシーケンス

Implicit Flow

ネイティブアプリやJavaScriptが使用するシーケンス。

Hybrid Flow

SAMLやOpenID Connectの組合せのシーケンス?

OpenIDトークン(クレーム)

外部クレーム

Idp(OP)は、扱うクレームの内容によって、

どちらを利用すべきかを判断する必要がある。

集約クレーム

一定期間変更されないことが保証されており
キャッシュの効果があるものは集約クレーム。

分散クレーム

クレームそのものではなく、問い合わせ先のURLを扱う。

をレスポンスに含む。

頻繁に更新されるものは分散クレーム。

クレーム暗号化

クレーム(JSONデータ)の

の方法は、IETFのJOSE WGにて仕様が策定されている。

JSON Web Signature(JWS)

JSON Web Encryption(JWE)

JSONデータで表現されたクレームを、

OpenID Connectのシーケンス

STEP 0 は事前準備なので、STEP 1 からが実際の認証・認可のシーケンス。

Webアプリ

STEP 0 : 事前準備(Idp(OP)にRPを登録)

Idp(OP)にRPを登録し、

を入手する。

STEP 1 : Authorization codeの取得

RPがIdp(OP)からAuthorization codeを取得。

STEP 2 : Access Token、ID Tokenの取得

STEP 3 : IDトークンの正当性の検証

"access_token"の

STEP 4 : 属性情報の取得

モバイルアプリ

STEP 1以降のモバイルアプリにおける差異が不明だった。

STEP 0 : Discovery & Dynamic Client Registration

IdP(OP)探索と動的なRP登録

結果的に、OPからRP識別のための“cient_id”がレスポンスされる。

STEP 1 : Authorization Request

認可リクエスト

STEP 2 : Authorization Response

認可応答

STEP 3 : ID Token Verification

IDトークンの検証

STEP 4 : Accessing to UserInfo? Endpoint

UserInfo?エンドポイントへのアクセス

参考

IdM実験室

WIF

WIF Extension for OAuthは古い?

OWIN

Microsoft.Owin.Security.OpenIdConnect?

ADFS

サンプル

Microsoft.Owin.Security.OpenIdConnect?

https://github.com/OpenTouryoProject/SampleProgram/tree/master/ASPNET/OpenID_Connect/

サンプル・アプリケーションをAzure Active Directoryに登録

  1. Azureの管理ポータルにサインイン。
  2. Azure Active Directoryのタブを開く。
  3. サンプル・アプリケーションを登録するテナント(ドメイン)を開く。
  4. [Applications]タブに移動し、ページの下部の[Add]アイコンををクリック。
  5. [What do you want to do?]画面で[Add an application my organization is developing]を選択。
  6. [Tell us about your application]画面が表示される。
    1. アプリケーションの名前を入力(例:OpenIDConnect_sample)。
    2. [Web Application and / or Web API]を選択する。
    3. [Next]をクリックする。
  7. [App properties]画面が表示される。
    1. サンプルのサインオンURLを入力(例:https://localhost:xxxxxx/
      サンプル・プロジェクトのプロパティにある開発サーバのSSL URLプロパティを指定
      http://www.codeproject.com/Tips/766918/Visual-Studio-Use-HTTPS-SSL-On-Web-Application-Pro
    2. アプリのID URIを入力(例:https://<your_tenant_name>/OpenIDConnect_sample)
      '<your_tenant_name>はAzure ADのテナント(ドメイン)名。
    3. [Complete]をクリック。

サンプル・アプリケーションの構成

  1. web.configファイルを開く。
  2. FxTenant?にAzure ADのテナント(ドメイン)名を指定(例:xxxxx.onmicrosoft.com)
  3. FxClientId? にAzureのポータルから入手することができるClient IDを指定
    1. クライアントIDを取得するには、
    2. Azureの管理ポータルにサインイン。
    3. Azure Active Directoryのタブを開く。
    4. サンプル・アプリケーションを登録したテナント(ドメイン)を開く。
    5. [Applications]タブに移動しサンプル・アプリケーションを選択。
    6. アプリケーション画面で[ACCESS WEB APIS IN OTHER APPLICATIONS]を選択。
    7. Client IDをコピー。
  4. FxPostLogoutRedirectUri?にサンプルのサインオンURLを入力(例:https://localhost:xxxxxx/

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS