Open棟梁 汎用認証サイトの使い所

47 views
Skip to first unread message

daisukenishino

unread,
Feb 27, 2018, 3:13:22 AM2/27/18
to OpenTouryoProject
以下、回答

汎用認証サイトは、
単なるアプリの認証機能で使うとなると少々オーバースペックですが、

昨今、認証一つとっても、結構複雑

 例えば、Visual StudioのASP.NET標準でASP.NET Identityのテンプレートを付けてきて、
 「こんなの短期間で習得できる訳無い & 1つのアプリに組み込むには大き過ぎるだろ。」
 と突っ込みたくなるのですが、.NETにコレ以上に良い認証ライブラリが無いのも事実で。

なので、認証サイトを別立てして、

OAuth2などで外部ログインできれば、
アプリ側も、(比較的に)楽に開発ができるかと思います。

汎用認証サイトは、

・単純な、IdP(サンイアップ・サインイン機能の提供)として使用できます。

・また、STS(OAuth2 / OIDC)を使用して、外部アプリケーションを外部ログインで認証できます。
 ・ASP.NET Identity(2系)は、OAuth2の基本部分しかサポートしないので、OAuth2拡張やOIDCは自作です。
 ・ASP.NET Identity3というASP.NET CoreのライブラリはOAuth2拡張やOIDCなど、
  最新の仕様を追っているようですが、現時点でASP.NET Coreに移行できるか微妙です。

・また、もっと高度な利用方法として、
 OAuth2 / OIDC本来の活用方法があります。
 ・SSO
 ・認証 / 認可
 ・IDフェデレーション
 ・スマホ / SPA、からのWebAPIを使用する際のWebAPI認証
 ※ 何れも認証系ですが。

今後のロードマップなどを書きましたので、下記もご参照下さい。

・今後の予定をメモしてみました。 - OSSコンソーシアム
  Open棟梁 v2 ソリューション化検討資料

・用語
 ・IdP :Identity Provider
 ・STS :Security Token Service

k_no...@e-mind.co.jp

unread,
Nov 22, 2018, 1:53:34 AM11/22/18
to OpenTouryoProject
現在、オープンソースの業務システム「MosP」(https://mosp.jp/)とOpen棟梁の汎用認証サイトを用いることで
MosPへのWebAPIリクエストに対するOatuh2.0の認可処理を実現しようとしています。
その際は「RFC 6749 4.1 Authorization Code Grant」フローでの実現は可能でしょうか。
「汎用認証サイト」のIF仕様書などはあればご教示ください。

nishi.74322014

unread,
Nov 22, 2018, 2:27:35 AM11/22/18
to OpenTouryoProject

Authorization Code GrantはOAuth2の
最も基本的な機能なのでサポートしています。

IF仕様はRFC6749にあるままですが、

ざっくり概要を説明しますと、

(1)認可リクエスト(スターター)
  GET /authorize?response_type=code&client_id=s6BhdRkqt3&state=xyz
      &redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb HTTP/1.1

 この間に、ユーザー(リソースオーナーは、
  ログイン画面でログインと認可画面で認可を行う)

(2)認可レスポンス
  HTTP/1.1 302 Found

(3)アクセストークンリクエスト
http://openid-foundation-japan.github.io/rfc6749.ja.html#token-req
  POST /token HTTP/1.1
  Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
  Content-Type: application/x-www-form-urlencoded

  grant_type=authorization_code&code=SplxlOBeZQQYbYS6WxSbIA
  &redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb

(4)アクセストークンレスポンス
  HTTP/1.1 200 OK
  Content-Type: application/json;charset=UTF-8
  Cache-Control: no-store
  Pragma: no-cache

  {
    "access_token":"2YotnFZFEjr1zCsicMWpAA",
    "token_type":"example",
    "expires_in":3600,
    "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA",
    "example_parameter":"example_value"
  }

となっています。

access_tokenもOIDCのid_tokenと同様にJWT化されています。
なので、必要に応じて、Token検証などを行う事も出来、
通常のOAuth2よりセキュアに利用できます。

...

汎用認証サイトの利用手順はこちらにありますが、


少々古いので、必要であれば、
オンデマンドでメンテナンスしますので
必要なタイミングなどあったら言って下さい。

西野


2018年11月22日木曜日 15時53分34秒 UTC+9 k_no...@e-mind.co.jp:

k_no...@e-mind.co.jp

unread,
Nov 22, 2018, 3:28:37 AM11/22/18
to OpenTouryoProject
西野さん

早速のご回答をありがとうございました。
wikiを見ながら動かしてみたいと思います。

どうぞよろしくお願い致します。

nishi.74322014

unread,
Nov 22, 2018, 3:59:22 AM11/22/18
to OpenTouryoProject
k_no...@e-mind.co.jpさん

Wikiですが、結構古くて、最新版は、
フォルダ構成など含め結構変わってるので、
必要なら、Skypeなどで、やりましょう。

西野

2018年11月22日木曜日 17時28分37秒 UTC+9 k_no...@e-mind.co.jp:
西野さん

早速のご回答をありがとうございました。
wikiを見ながら動かしてみたいと思います。

どうぞよろしくお願い致します。

Reply all
Reply to author
Forward
0 new messages