自動的に認証コードを承認
当社の承認プロセスの前には、最初のステップは、彼らが承認ページを受けることに同意することを、認証コードを取得します:
このプロセスは、このプロセスが実際にクライアントの構成に必要とされる自動同意、自動承認を追加することができ、ページがニックネームやアバターなどの情報を得ることができるようにするかどうかを問う、ログインに成功した後、サードパーティのようなものです:
私たちは、あなたが得ることができる直接認証コードに適用されます。
プロセスが自動的に行われる必要があるときに、ユーザーが同意する]をクリックする必要がある場合、これはデフォルトはfalseで書いていない、falseに設定する必要があり、この設定を必要とします。
クライアント情報を整理
小規模な構成で上記の自動承認のみクライアント構成、のは、すべての設定可能なクライアントシステムの内容を整理しましょう。まず見た目は今6つのフィールドを設定しました。
上記の6つの分野は、最も一般的に使用されても、基本的なクライアント情報です。しかし、クライアントの構成の他の多くの分野があり、我々は全体を見ています:
11以上の構成は、実質的にすべてのサードパーティクライアントのコンテンツフィールドを含みます。一つで詳細1で説明しましょう:
withClient方法:CLIENT_IDを設定するには、構成ごとに一意のクライアント(クライアント)を識別するために使用されなければならない;(サーバーが自動的に生成することができる)登録に充填されている必要があり、このフィールドは、またapp_key呼ば実用化が必要です
resourceIds方法:resource_idsを構成するために使用されるが、IDは、クライアントは、別の方法として、ID、リソースの実際のニーズに応じて、リソースセット、クライアントの登録にアクセスすることができ、登録プロセスIDが与えられたリソースの対応するレベルに応じて異なっていてもよい表します。私たちは、各リソースサーバ(リソースサービス)のためのRESOURCEIDを設定することができます。クライアント許可を与えるには、クライアントのインスタンスを設定することができます設定されていない場合は、リソースの一部にアクセスすることができ、リソースのすべてにアクセスすることです。
秘密の方法:client_secretを設定、またはもapp_secret呼ば登録サーバに自動的に生成され、実用化に必要事項を記入すること、
メソッドのスコープは:、そのようなモバイル端末などの読み取りと書き込みのアクセス許可、またはウェブ端権限として指定されたクライアントを、スコープの範囲を設定するには、すべての権限は、すべてを表します
authorizedGrantTypes方法:authorization_code、暗号モード:パスワード、リフレッシュトークン:refresh_token、暗黙モード:暗黙:クライアントモード:client_credentials authorized_grant_types、オプションの値が、認証コードパターンを構成するために使用されます。カンマで区切られた複数のサポート
redirectUris方法:web_server_redirect_uri、クライアントのリダイレクトURI、authorization_code暗黙的に設定し、この値をチェックする必要があり、登録を埋めるために使用
当局方法:承認プロセスがログインしたユーザを必要とする場合、当局、指定したユーザーの管轄権を設定するために使用するには、フィールドには、暗黙的に有効になり、client_credentialsを必要としません。
accessTokenValiditySeconds access_token_validityを構成するための方法は、(秒)デフォルトの有効時間を設定access_tokenは(12時間)
refreshTokenValiditySeconds方法:refresh_token_validityを設定するには、提供さrefresh_token期間(秒)、デフォルト(30日)
付加情報方法:additional_informationを構成するために使用されるが、NULLにすることができ、補足情報を表し、値は、JSON形式でなければなりません
autoApprove方法:自動的にユーザーの承認操作を設定するかどうかを、autoapproveを設定する偽の、適したauthorization_codeモードをデフォルトに使用し、ユーザーは認証が真の操作スキップページに設定されている確認し、直接REDIRECT_URIジャンプ
ここでは、の定義はoauth_client_detailsという名前の11フィールド、テーブルで、データベース内のテーブルを作成します。
このテーブル名はoauth_client_details OAuthのテーブル名を指定しなければならないことに注意してください、また、デフォルトのJDBC操作のテーブル名です。レコードを追加してみましょう:
resource_ids、及び他のマルチフィールドの値が以前の構成と同じである前の例に比べ。秘密は暗号化された暗号文、最初の暗号化秘密に格納されていることに注意してください。
RESOURCE_ID以上の認定サービス、リソースおよびサービスは、自分のIDを設定する必要があります。
デフォルトの管理JDBCクライアント
クライアント情報の死の構成は、最初に導入されたデータベースは非常にシンプルに依存されている方法JDBCクライアントのクエリから変更されています。
次に、データソースを設定します。
最終更新日のconfigureクライアントライセンスクラスコンフィギュレーション:
クライアント構成は、変更が非常に簡単で、唯一のクライアントへのJDBCデータソースを設定する必要があります後、クエリーメソッドが自動的に行われ見ることができます。リアライズについて、あなたはソースコードを参照することができます。
- org.springframework.security.oauth2.provider.client.JdbcClientDetailsService
そこ書かれており、CRUDのSQL文のロジックされています。
秘密鍵更新方法を持っている、暗号化方式が必要とされています。
だから我々は、JDBCの後ろに暗号化方式を設定できます。
テスト
上記データベースに加えて、その他の構成は、次をテストするために、簡単な変更します:
アクセス結果:
以前のように具体的な処理。
コード住所:https://gitee.com/blueses/spring-boot-security 19 20