2017-06-19 1 views
0

OpenIDIdentityProviderを使用して、Openshift管理コンソールで管理ユーザを認証しています。私はauth0サービスを使ってユーザーを認証しています。管理ユーザーは展開時に不可解なプレイブックで定義され、効果的に管理ユーザーをハードコード化します。ルックアップマッピング方式を使用したオープンオープンIDアイデンティティプロバイダ

は、それが完全にOpenIDIdentityProviderを使用して、すべての管理者および開発者、ユーザー、lookupマッピング方法を管理し、認証要求に追加の許可ロールを介して引っ張ってextraScopes: [roles]のようなものを追加することは可能ですか?そうすれば、私とユーザーとの役割を不可能なプレイブックとは別に完全に管理することができます。 認証プロバイダ側の権限を管理するための次のレベルのボーナスポイント。

Openshiftのドキュメントは、デフォルトのmappingMethod: claim以外の認証/認可の詳細については非常に明るいです。

以下

請求ベースのマッピング方式のための私のアイデンティティプロバイダーのJSONファイルです:

{ 
    "items": [ 
    { 
     "name": "auth0", 
     "challenge": false, 
     "login": true, 
     "mappingMethod": "claim", 
     "kind": "OpenIDIdentityProvider", 
     "clientID": "supersecretsauce", 
     "clientSecret": "extrasupersecretsauce", 
     "extraScopes": ["email", "profile"], 
     "claims": { 
     "id": [ 
      "email" 
     ], 
     "preferredUsername": [ 
      "email" 
     ], 
     "name": [ 
      "name" 
     ], 
     "email": [ 
      "email" 
     ] 
     }, 
     "urls": { 
     "authorize": "https://fancypants.auth0.com/authorize", 
     "token": "https://fancypants.auth0.com/oauth/token", 
     "userInfo": "https://fancypants.auth0.com/userinfo" 
     } 
    } 
    ] 
} 

私の単純な心のために、以下の認証プロバイダによって返された役割で作業したルックアップ・ベースのマッピング方法のために十分であろう。

{ 
    "items": [ 
    { 
     "name": "auth0", 
     "challenge": false, 
     "login": true, 
     "mappingMethod": "lookup", 
     "kind": "OpenIDIdentityProvider", 
     "clientID": "supersecretsauce", 
     "clientSecret": "extrasupersecretsauce", 
     "extraScopes": ["email", "profile", "roles"], 
     "claims": { 
     "id": [ 
      "email" 
     ], 
     "preferredUsername": [ 
      "email" 
     ], 
     "name": [ 
      "name" 
     ], 
     "email": [ 
      "email" 
     ], 
     "role": [ 
      "roles" 
     ] 
     }, 
     "urls": { 
     "authorize": "https://fancypants.auth0.com/authorize", 
     "token": "https://fancypants.auth0.com/oauth/token", 
     "userInfo": "https://fancypants.auth0.com/userinfo" 
     } 
    } 
    ] 
} 

機能的役割の値の例は、cluster-adminです。

答えて

1

OpenIDは認証にのみ使用できます。認証と認可の両方に使用しようとしています。これは、ロールとバインディングがOpenshiftによって管理されるため不可能です。外部サービスに委任することはできません。

+0

フィードバックのおかげで、私はこの機能要求を偶然見つけたときに、https://trello.com/c/8olzeZH3 – Brown1

+0

@ Brown1というカードがまだ認証(グループメンバーシップ)しか扱っていないことが分かりました。 Openshiftのグループにロールをバインドする必要があります。 – enj

+0

opensshiftはそのままで、認証トークンで返されたロールを受け入れる方法がありませんか?たとえば、トークンにopenshiftのロールとグループに一致する名前のロールとグループが含まれていた場合、openshiftはそれらのロールとグループを受け入れません。それが意図だったので、openshift内ですでに定義されている役割とグループを使用し、authゲートウェイ側のユーザーに追加し、それらの役割とグループをトークンで戻します。 – Brown1

関連する問題