Triển khai kiểu cấp mật khẩu

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến Tài liệu về Apigee X.
thông tin

Loại cấp mật khẩu (hoặc "mật khẩu") của chủ sở hữu tài nguyên chủ yếu được sử dụng trong các trường hợp ứng dụng có độ tin cậy cao. Trong cấu hình này, người dùng cung cấp thông tin xác thực máy chủ tài nguyên của họ (tên người dùng/mật khẩu) đến ứng dụng. Việc này sẽ gửi cho ứng dụng một yêu cầu mã truy cập đến Apigee Cạnh. Máy chủ danh tính sẽ xác thực thông tin đăng nhập và nếu thông tin này hợp lệ, Edge sẽ tiếp tục đúc mã truy cập rồi trả lại mã đó cho ứng dụng.

Giới thiệu về chủ đề này

Chủ đề này cung cấp nội dung mô tả chung và thông tin tổng quan về mật khẩu của chủ sở hữu tài nguyên OAuth 2.0 quy trình loại tài trợ và thảo luận cách triển khai quy trình này trên Apigee Edge.

Một số ví dụ có thể giúp ích cho bạn

  • Yêu cầu an accesstoken: Loại cấp mật khẩu: Cho bạn biết cách tạo yêu cầu mã thông báo, định cấu hình Chính sách OAuthV2 đối với loại cấp mật khẩu và cách định cấu hình điểm cuối cho chính sách này trong Cạnh.
  • oauth-validate-key-secret: Một proxy mẫu trong GitHub mà bạn có thể triển khai cho Edge và dùng thử bị loại. Đây là ví dụ toàn diện về hình thức cấp mật khẩu. Sản phẩm này thể hiện đó là xác thực thông tin đăng nhập của ứng dụng khách (khoá/bí mật) trước khi gửi thông tin xác thực của người dùng vào nhà cung cấp danh tính.

Video

Video: Xem video này về cách triển khai việc cấp mật khẩu loại.

Trường hợp sử dụng

Loại quyền này dành cho các ứng dụng có độ tin cậy cao hoặc đặc quyền vì người dùng là bắt buộc để cung cấp thông tin đăng nhập máy chủ tài nguyên cho ứng dụng. Thông thường, ứng dụng cung cấp một màn hình đăng nhập khi người dùng nhập thông tin đăng nhập của họ.

Sơ đồ quy trình

Sơ đồ quy trình sau đây minh hoạ quy trình cấp loại mật khẩu cho chủ sở hữu tài nguyên thông qua Apigee Edge đóng vai trò là máy chủ uỷ quyền.

Mẹo: Để xem phiên bản lớn hơn của sơ đồ này, hãy nhấp chuột phải vào biểu đồ rồi mở trong thẻ mới hoặc lưu và mở thẻ mới trong trình xem hình ảnh.

Các bước trong quy trình loại cấp mật khẩu

Sau đây là phần tóm tắt các bước cần thiết để triển khai loại cấp mật khẩu mà Apigee Edge đóng vai trò là máy chủ uỷ quyền.

Điều kiện tiên quyết: Bạn phải đăng ký ứng dụng khách với Apigee Edge để lấy ID ứng dụng khách và khoá bí mật của ứng dụng khách. Xem phần Đăng ký ứng dụng khách để chi tiết.

1. Người dùng bắt đầu quy trình và nhập thông tin xác thực

Khi ứng dụng cần truy cập vào tài nguyên được bảo vệ của người dùng (ví dụ: người dùng nhấp vào một trong ứng dụng), người dùng sẽ được chuyển hướng đến biểu mẫu đăng nhập.

2. Yêu cầu đối với ứng dụng mã truy cập từ Apigee Edge

Ứng dụng gửi yêu cầu về mã truy cập, bao gồm cả thông tin đăng nhập của người dùng, cho Điểm cuối GenerateAccessToken trên Apigee Edge.

Dưới đây là yêu cầu POST mẫu, bao gồm các tham số bắt buộc cho loại quyền cấp này:

$ curl -i \
  -X POST \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Authorization: Basic c3FIOG9vSGV4VHo4QzAySVg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ' \
  -d 'grant_type=password&username=the-user-name&password=the-users-password' \
  https://docs-test.apigee.net/oauth/token

Ngoài ra, bạn có thể thực hiện lệnh đó như sau, sử dụng tuỳ chọn -u để cuộn để tạo tiêu đề Xác thực cơ bản được mã hoá base64 cho bạn.

$ curl -i \
  -X POST \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -u sqH8ooHexTz8C02IX9ORo6rhgq1iSrAl:Z4ljtJdneBOjPMAU \
  -d 'grant_type=password&username=the-user-name&password=the-users-password' \
  https://docs-test.apigee.net/oauth/token

(Mỗi lệnh trong số đó phải nằm trên một dòng.)

Thông tin đăng nhập của người dùng nằm trong thông số biểu mẫu, còn thông tin đăng nhập ứng dụng khách thì được mã hoá trong tiêu đề xác thực cơ bản HTTP. Để biết nội dung mô tả chi tiết về lệnh gọi API này, bao gồm thông tin chi tiết về tiêu đề Xác thực cơ bản bắt buộc, hãy xem phần cấp mật khẩu của "Yêu cầu mã truy cập và mã uỷ quyền".

3. Edge xác thực ứng dụng ứng dụng

Trước khi gửi tên người dùng và mật khẩu của người dùng cho một nhà cung cấp danh tính, Edge cần biết rằng ứng dụng khách đưa ra yêu cầu là ứng dụng hợp lệ, đáng tin cậy. Một cách để thực hiện việc này là sử dụng API xác thực khoá trên lệnh gọi API. Trong một số trường hợp, có thể bạn muốn xác thực cả khoá ứng dụng khách và bí mật. Có proxy mẫu minh hoạ kỹ thuật allternate này trong kho lưu trữ api-platform-samples trên GitHub.

4. Edge xử lý thông tin đăng nhập

Sau khi ứng dụng khách được xác thực, bạn có thể sử dụng chính sách Chú thích dịch vụ hoặc JavaScript để gọi dịch vụ nhận dạng, gửi thông tin xác thực của người dùng. Ví dụ: đó có thể là dịch vụ LDAP hoặc bất kỳ dịch vụ nào mà bạn muốn dùng để xác thực thông tin đăng nhập. Để biết thông tin chi tiết về các chính sách này, xem Trích xuất biến chính sáchJavaScript .

Nếu dịch vụ nhận dạng xác thực thông tin xác thực và trả về phản hồi 200, thì Edge sẽ tiếp tục xử lý yêu cầu; nếu không, Edge sẽ ngừng xử lý và trả về lỗi cho ứng dụng khách.

5. Chính sách OAuthV2 thực thi

Nếu thông tin đăng nhập hợp lệ, bước xử lý tiếp theo là thực thi chính sách OAuthV2 được định cấu hình cho loại cấp mật khẩu. Sau đây là ví dụ. <UserName> và &lt;PassWord&gt; là phần tử bắt buộc và bạn có thể truy xuất các phần tử đó từ các biến luồng đã được lưu bằng chính sách ExtractVariables. Để biết thông tin tham khảo chi tiết về chính sách này, xem chính sách về OAuthV2.

<OAuthV2 name="GetAccessToken">
  <Operation>GenerateAccessToken</Operation>
  <ExpiresIn>360000000</ExpiresIn> 
  <SupportedGrantTypes> 
     <GrantType>password</GrantType> 
  </SupportedGrantTypes> 
  <GrantType>request.queryparam.grant_type</GrantType> 
  <UserName>login</UserName>
  <PassWord>password</PassWord>
  <GenerateResponse/> 
</OAuthV2>

Nếu chính sách này thành công, hệ thống sẽ tạo phản hồi sẽ gửi lại cho ứng dụng chứa quyền truy cập mã thông báo. Phản hồi ở định dạng JSON. Dưới đây là một ví dụ. Xin lưu ý rằng access_token là một trong những phần tử:

{
    "issued_at": "1420258685042",
    "scope": "READ",
    "application_name": "ce1e94a2-9c3e-42fa-a2c6-1ee01815476b",
    "refresh_token_issued_at": "1420258685042",
    "status": "approved",
    "refresh_token_status": "approved",
    "api_product_list": "[PremiumWeatherAPI]",
    "expires_in": "1799",
    "developer.email": "tesla@weathersample.com",
    "organization_id": "0",
    "token_type": "BearerToken",
    "refresh_token": "IFl7jlijYuexu6XVSSjLMJq8SVXGOAAq",
    "client_id": "5jUAdGv9pBouF0wOH5keAVI35GBtx3dT",
    "access_token": "I6daIgMSiUgYX1K2qgQWPi37ztS6",
    "organization_name": "docs",
    "refresh_token_expires_in": "0",
    "refresh_count": "0"
}

6. Khách hàng gọi API được bảo vệ

Giờ đây, khi có mã truy cập hợp lệ, ứng dụng có thể thực hiện lệnh gọi đến API được bảo vệ. Trong phần này Trong trường hợp này, yêu cầu được gửi đến Apigee Edge (máy chủ proxy) và Edge sẽ chịu trách nhiệm xác thực mã truy cập trước khi truyền lệnh gọi API đến máy chủ tài nguyên mục tiêu. Mã truy cập được chuyển vào tiêu đề Uỷ quyền. Ví dụ:

$ curl -H "Authorization: Bearer I6daIgMSiUgYX1K2qgQWPi37ztS6
" http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282