8.3. ユーザー管理のアクセス


Red Hat Single Sign-On の Authorization Services は、短期間 User-Managed Access または UMA をベースとしています。UMA は、以下の方法で OAuth2 機能を強化する仕様です。

  • プライバシー

    今日、ユーザーのプライバシーは、より多くのデータやデバイスが利用でき、クラウドに接続しているため、ユーザーのプライバシーの懸念となります。UMA および Red Hat Single Sign-On を使用すると、リソースサーバーは、ユーザーが定義するポリシーに基づいてパーミッションが付与されているユーザーのプライバシーに基づいてリソースが保護されるように機能を強化できます。

  • サードパーティー間の認可

    リソースの所有者 (通常のエンドユーザー) は、リソースへのアクセスを管理し、他のリソースにアクセスするために他のユーザーが (例: 通常のエンドユーザー) を認可できます。これは、ユーザーの代わりに動作しているクライアントアプリケーションに、UMA リソースの所有者が完全に非同期でアクセスすることが許可される OAuth2 とは異なります。

  • リソース共有

    リソースの所有者はリソースに対するパーミッションを管理し、特定のリソースにアクセスできるユーザーや方法を決定できます。その後、Red Hat Single Sign-On は、リソースの所有者がリソースを管理できる共有サービスとして機能します。

Red Hat Single Sign-On は、UMA 2.0 準拠の認可サーバーで、ほとんどの UMA 機能を提供します。

たとえば、インターネット Banking Service(リソースサーバー) を使用したユーザー Alice(リソース所有者) を使用して履歴の Bank アカウント (リソース所有者) を管理することを検討してください。1 日の 1 日、Alice がバンクアカウントを Bob(リクエストパーティー) に開催することを決定し、アカウンティングのプロフェッショナルです。ただし、Bob は view(scope)Alice のアカウントにのみアクセスできる必要があります。

リソースサーバーとして、インターネット Banking サービスは Alice の Bank アカウントを保護することができる必要があります。このため、Red Hat Single Sign-On Resource Registration Endpoint に依存して、Alice の Bank アカウントを表すサーバーでリソースを作成します。

現在、Bob が Alice の Bank アカウントにアクセスしようとすると、アクセスは拒否されます。インターネットバランシングサービスは、銀行取引アカウントのデフォルトポリシーをいくつか定義します。その 1 つは、所有者 (この場合は Alice) のみが銀行取引アカウントにアクセスできます。

ただし、インターネットボーシングサービスは、Alice のプライバシーに伴い、銀行取引アカウントの特定のポリシーを変更することもできます。変更可能なこれらのポリシーの 1 つとして、銀行取引アカウントを閲覧できるユーザーを定義することです。このため、インターネット Banking サービスは Red Hat Single Sign-On を使用して Alice の領域を提供し、アナッシングが個人や操作 (またはデータ) にアクセスできる領域に提供します。いつでも、Alice は追加のパーミッションを Bob に付与するか、付与できます。

8.3.1. 認可プロセス

UMA では、クライアントが UMA 保護リソースサーバーにアクセスしようとすると、認可プロセスが起動します。

UMA 保護リソースサーバーでは、トークンが RPT である要求内のベアラートークンが必要です。クライアントが RPT を使用せずにリソースサーバーでリソースを要求する場合:

クライアントで、RPT を送信せずに保護されているリソースを要求

curl -X GET \
  http://${host}:${port}/my-resource-server/resource/1bfdfe78-a4e1-4c2d-b142-fc92b75b986f
Copy to Clipboard Toggle word wrap

リソースサーバーは、パーミッション チケット と、Red Hat Single Sign-On サーバーの場所が指定された as_uri パラメーターを使用して応答をクライアントに返信し、RPT を取得するためにチケットを送信します。

リソースサーバーはパーミッションチケットで応答

HTTP/1.1 401 Unauthorized
WWW-Authenticate: UMA realm="${realm}",
    as_uri="https://${host}:${port}/auth/realms/${realm}",
    ticket="016f84e8-f9b9-11e0-bd6f-0021cc6004de"
Copy to Clipboard Toggle word wrap

パーミッションチケットは、Red Hat Single Sign-On Permission API が発行する特別なタイプのトークンです。これらは、要求されるパーミッション (リソースやスコープなど) や、要求に関連するその他の情報を表します。リソースサーバーのみがこれらのトークンを作成できます。

クライアントにはパーミッションチケットがあり、Red Hat Single Sign-On サーバーの場所もあるため、クライアントは検出ドキュメントを使用してトークンエンドポイントの場所を取得し、認可要求を送信できるようになりました。

クライアントは、認可要求をトークンエンドポイントに送信して RPT を取得

curl -X POST \
  http://${host}:${port}/auth/realms/${realm}/protocol/openid-connect/token \
  -H "Authorization: Bearer ${access_token}" \
  --data "grant_type=urn:ietf:params:oauth:grant-type:uma-ticket" \
  --data "ticket=${permission_ticket}
Copy to Clipboard Toggle word wrap

Red Hat Single Sign-On アセスメントプロセスでパーミッションの発行が行われると、パーミッションが関連付けられている RPT を発行します。

Red Hat Single Sign-On が RPT を使用してクライアントに応答

HTTP/1.1 200 OK
Content-Type: application/json
...
{
    "access_token": "${rpt}",
}
Copy to Clipboard Toggle word wrap

サーバーからの応答は、他の付与タイプを使用する場合にトークンエンドポイントからの他の応答と同様になります。RPT は access_token 応答パラメーターから取得できます。クライアントに権限を付与する権限がないと、Red Hat Single Sign-On は 403 HTTP ステータスコードで応答します。

Red Hat Single Sign-On は認可要求を拒否

HTTP/1.1 403 Forbidden
Content-Type: application/json
...
{
    "error": "access_denied",
    "error_description": "request_denied"
}
Copy to Clipboard Toggle word wrap

8.3.2. パーミッション要求の送信

Red Hat Single Sign-On Token Endpoint の RPT を使用して交換するために、クライアントは最初に UMA で保護されているリソースサーバーからパーミッションチケットを取得する必要があります。

デフォルトでは、Red Hat Single Sign-On は 403 HTTP ステータスコードで応答し、クライアントが RPT で発行できない場合に request_denied エラーを返します。

Red Hat Single Sign-On は認可要求を拒否

HTTP/1.1 403 Forbidden
Content-Type: application/json
...
{
    "error": "access_denied",
    "error_description": "request_denied"
}
Copy to Clipboard Toggle word wrap

このような応答は、Red Hat Single Sign-On がパーミッションチケットで表されるパーミッションで RPT を発行できなかったことを意味します。

場合によっては、クライアントアプリケーションは非同期認可フローを開始し、アクセスを付与するべきかどうかを判断するリソースの所有者をリクエストする場合があります。そのため、クライアントは、トークンエンドポイントへの認可要求と共に submit_request 要求パラメーターを使用できます。

curl -X POST \
  http://${host}:${port}/auth/realms/${realm}/protocol/openid-connect/token \
  -H "Authorization: Bearer ${access_token}" \
  --data "grant_type=urn:ietf:params:oauth:grant-type:uma-ticket" \
  --data "ticket=${permission_ticket} \
  --data "submit_request=true"
Copy to Clipboard Toggle word wrap

submit_request パラメーターを使用すると、Red Hat Single Sign-On はアクセスが拒否された各リソースに対するパーミッション要求を永続化します。作成されると、リソースの所有者は、アカウントを確認し、パーミッション要求を管理できます。

この機能はアプリケーションの Request Access ボタンと考えることができます。ここでは、他のユーザーにリソースへのアクセスを要求できます。

8.3.3. ユーザーリソースへのアクセス管理

Red Hat Single Sign-On のユーザーアカウントサービスを使用して、リソースへのアクセスを管理できます。この機能を有効にするには、最初にレルムのユーザー管理アクセスを有効にする必要があります。

手順

  1. 管理コンソールにログインします。
  2. メニューで Realm Settings をクリックします。
  3. ユーザー管理アクセスON に切り替えます。

    My Resources

  4. メニューオプションの My Resources をクリックします。以下のオプションを含むページが表示されます。

    • 承認が必要な パーミッションリクエストの管理

      このセクションでは、承認を待っているすべてのパーミッション要求の一覧を示します。これらの要求は、特定のリソースへのアクセスを要求するユーザー (ユーザー) に接続されます。ユーザーはこれらのリクエストを承認または拒否できます。

    • マイリソース の管理

      このセクションには、ユーザーが所有するすべてのリソースの一覧が含まれます。ユーザーは、リソースをクリックして詳細情報を検索し、リソースを他のユーザーと共有できます。

    • 共有されたリソース の管理

      このセクションでは、ユーザーと共有する全リソースの一覧を示します。

    • 承認待ちの要求 の管理

      このセクションでは、別のユーザーまたはリソース所有者の承認を待っているユーザーが送信したパーミッション要求の一覧を示します。

特定のリソースをクリックして変更を行うと、以下のページが表示されます。

Resource Detail

このページには以下のオプションが含まれます。

  • このリソースへのアクセス権限のあるユーザー の管理

    本セクションでは、このリソースへのアクセスを持つユーザーの一覧を説明します。ユーザーは、Revoke ボタンをクリックするか、特定の Permission を削除してアクセスを取り消すことができます。

  • リソースを他のユーザーと共有する

    別のユーザーのユーザー名またはメールアドレスを入力し、ユーザーはリソースを共有し、アクセスを付与するパーミッションを選択できます。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat