1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

RFC 8707 - Resource Indicators for OAuth 2.0 メモ

Posted at
  • OAuth2.0におけるクライアントがアクセス要求する保護リソースを認可サーバーに明示的に通知するための仕様についてメモする。

Resource Parameter

  • アクセスを要求するリソースを指定するパラメータ

Authorization Request

  • resource:アクセス対象の保護リソースのID

    • 省略時:認可サーバーはリソース特定なし、もしくは事前定義されたデフォルトのリソース値を使用してリクエストを処理する。
    • 認可サーバーは、クライアントに対してアクセス対象のリソースを指定することを要求し、invalid_targetエラーでパラメーターを省略したリクエストを失敗させる場合もある。
  • インプリシットフロー認可リクエスト例

    GET /as/authorization.oauth2?response_type=token
        &client_id=example-client
        &state=XzZaJlcwYew1u0QBrRv_Gw
        &redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb
        &resource=https%3A%2F%2Fapi.example.com%2Fapp%2F HTTP/1.1
    Host: authorization-server.example.com
    
  • 認可コードフロー認可リクエスト例

    • リソース所有者のカレンダーと連絡へのアクセスを要求する例
    GET /as/authorization.oauth2?response_type=code
            &client_id=s6BhdRkqt3
            &state=tNwzQ87pC6llebpmac_IDeeq-mCR2wLDYljHUZUAWuI
            &redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb
            &scope=calendar%20contacts
            &resource=https%3A%2F%2Fcal.example.com%2F
            &resource=https%3A%2F%2Fcontacts.example.com%2F HTTP/1.1
    Host: authorization-server.example.com
    

Access Token Request

  • クライアントがアクセストークンを使用する予定のターゲットサービスもしくは保護リソースを指定する。

  • リクエスト例

    • https://cal.example.com/へのアクセスにアクセストークンを使用することを示す。
    POST /as/token.oauth2 HTTP/1.1
    Host: authorization-server.example.com
    Authorization: Basic czZCaGRSa3F0Mzpoc3FFelFsVW9IQUU5cHg0RlNyNHlJ
    Content-Type: application/x-www-form-urlencoded
    
    grant_type=authorization_code
    &redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb
    &code=10esc29BWC2qZB0acc9v8zAv9ltc2pko105tQauZ
    &resource=https%3A%2F%2Fcal.example.com%2F
    
    • レスポンス例

       {
      	"access_token":"eyJhbGciOiJFUzI1NiIsImtpZCI6Ijc3In0.eyJpc3MiOiJodHRwOi8vYXV0aG9yaXphdGlvbi1zZXJ2ZXIuZXhhbXBsZS5jb20iLCJzdWIiOiJfX2JfYyIsImV4cCI6MTU4ODQyMDgwMCwic2NvcGUiOiJjYWxlbmRhciIsImF1ZCI6Imh0dHBzOi8vY2FsLmV4YW1wbGUuY29tLyJ9.nNWJ2dXSxaDRdMUKlzs-cYIj8MDoM6Gy7pf_sKrLGsAFf1C2bDhB60DQfW1DZL5npdko1_Mmk5sUfzkiQNVpYw",
          "token_type":"Bearer",
          "expires_in":3600,
          "refresh_token":"4LTC8lb0acc6Oy4esc1Nk9BWC0imAwH7kic16BDC2",
          "scope":"calendar"
       }
      

セキュリティに関する考慮事項

  • 他リソースへの不正アクセス対策
    • resourceパラメーターを指定することで、アクセストークンが使用される保護リソースを提示する。
  • 別テナントが所有するリソースへの不正アクセス対策
    • パスコンポーネントなど、テナントを識別するURI部分を含むリソースURIを使用する。
  • resourceパラメータの単一指定
    など

参考情報

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?