91. đo tác động của nó trên hệ thống thực hiện-nó có thể thêm một chi phí liên quan đến con đường bảo trì và như thế. Trong chương này về an ninh và manageability, it's about time chúng tôi bắt đầu nói chuyện về manageability mô hình. Các mô hình tiếp theo, nhà cung cấp danh tính, giúp thực hiện chuyển đổi này, vì nó có cả an ninh và manageability khía cạnh.
4.4 nhà cung cấp nhận dạng mẫu
Khi bạn di chuyển một doanh nghiệp SOA, hoặc thậm chí nếu bạn chỉ xây dựng một hệ thống duy nhất dựa
trên khái niệm SOA, bạn đang có khả năng để kết thúc với khá một vài dịch vụ- và khá một vài
thêm dịch vụ tương tác. Từ quan điểm bảo mật, bạn cần phải đảm bảo rằng mỗi
của những tương tác được xác thực và ủy quyền. Điều này có nghĩa rằng mỗi
Dịch vụ của bạn có để chăm sóc của này xác thực và ủy quyền
Ay, có là chà. Này phổ biến vũ khí của xác thực và ủy quyền tăng
một số thách thức liên quan đến bảo trì, quản lý, hiệu suất, và secu rity. Hãy xem xét một kịch bản mẫu.
VẤN ĐỀ
Chúng ta hãy xem xét một cơ quan phụ scription tạp chí từ chương 2 (trong của chúng tôi cussion dis của mô hình hoạt động). Một trong các dịch vụ quan trọng cho một cơ quan phụ scription tạp chí là một trong đó đề với khách hàng. Hầu như bất kỳ dịch vụ nào khác trong sys-tem nhu cầu thông tin từ dịch vụ đó.
Hình 4,10 cho thấy bốn đơn giản ví dụ-các chương trình khuyến mãi dịch vụ nhu cầu địa chỉ, Các
đề xuất dịch vụ cần tỷ lệ giảm giá, và các thanh toán và đơn đặt hàng dịch vụ cả hai cần địa chỉ và tỷ giá giảm giá.
vì vậy, những gì là vấn đề với điều đó? Như một vấn đề của thực tế, có rất nhiều:
-Dịch vụ The khách hàng cần phải xác nhận mỗi của các dịch vụ kết nối
để nó để đảm bảo rằng nó nói chuyện với một dịch vụ thân thiện nội bộ. Nhưng bạn không muốn
nó biết về mỗi người trong số các dịch vụ này. Bạn không muốn để Cập Nhật khách hàng
vụ mỗi khi bạn thêm một dịch vụ mới. Tránh tion integra này điểm-điểm, là một phần của lý do đi xuống con đường SOA.
-Khi bạn có một con người trong vòng lặp, bạn cần phải đảm bảo rằng người đó được ủy quyền để có được dữ liệu của khách hàng. Khi người dùng làm việc với một giao diện người dùng mà hoạt động
với dịch vụ đặt hàng, người dùng có thể được cho phép để có được một khách hàng
gửi email địa chỉ (để gửi một xác nhận đơn đặt hàng) nhưng không phải của khách hàng nhà
số điện thoại.
92. -Anh không muốn mỗi dịch vụ để "biết" tất cả những người sử dụng như rằng sẽ gây ra một cơn ác mộng chính-tenance và quản lý. Bạn sẽ thu hồi khả năng trên tất cả
các dịch vụ mỗi khi một nhân viên rời khỏi công ty?
-Nếu khách hàng dịch vụ đã để cho phép và xác thực mỗi cuộc gọi, nó sẽ
phải tiêu tốn rất nhiều thời gian làm như vậy, mà thêm độ trễ và làm tăng nhịp độ-ral khớp nối.
-Quản lý toàn bộ ủy quyền và authentications trên dịch vụ.
Ví dụ, giả sử bạn chỉ cần thêm các đề xuất dịch vụ-làm thế nào bạn có thể cho
dịch vụ khách hàng và bất kỳ dịch vụ nào khác biết nó là OK để nói chuyện với nó? Làm thế nào có thể
bạn làm điều đó cho người dùng mới?
-Tất cả các vấn đề trước có được tồi tệ hơn khi dịch vụ được bên ngoài vì
sự tin tưởng giữa tổ chức là tự nhiên thấp hơn sự tin tưởng giữa các thành phần inter nal. Ví dụ, bạn có thể có một thứ ba bên xử lý chuyên nghiệp-chuyển động cho bạn. Bạn sẽ muốn để cho họ có thông tin chi tiết càng ít càng tốt về
cấu trúc bên trong của bạn và người sử dụng, nhưng bạn muốn cho phép họ để nói chuyện với bạn
dịch vụ và đảm bảo rằng họ đang xác thực.
Những gì bạn cần là một cách hiệu quả và an toàn để xử lý xác thực và authoriza-tion trong một hệ thống đã liên kết và phân phối.
? Làm thế nào bạn có thể có một hiệu quả chương trình ủy quyền và xác thực trong
SOA một?
Câu hỏi đầu tiên mà nói đến cái tâm là, "Sẽ không bảo vệ cơ sở hạ tầng pat-nhàn (từ phần 4.2) giải quyết điều này?" Vâng, không. Các mô hình cơ sở hạ tầng bảo đảm mất
chăm sóc của các kênh, nhưng làm thế nào bạn biết bạn có thể nói chuyện với ai đó trên đó chan-nel? Bạn có thể giao tiếp trên một cơ sở hạ tầng bảo đảm để thiết lập bản sắc, nhưng
bạn cần một cái gì đó thêm.
như tôi đã đề cập trước đó, tùy chọn ngây thơ của cố gắng để quản lý an ninh cho mỗi
dịch vụ ngày của riêng mình là một cơn ác mộng bảo trì, như bạn sẽ cần phải làm công việc đó cho mỗi
dịch vụ. Bạn cũng chạy nguy cơ giới thiệu tích hợp khớp nối và điểm
cho mỗi người tiêu dùng dịch vụ mới mà bạn giới thiệu.
viết mã này một lần và tái sử dụng nó (chẳng hạn như với các thành phần cạnh mô hình
thảo luận trong chương 2) sẽ chỉ làm việc nếu bạn hoặc nhóm của bạn sở hữu tất cả các dịch vụ. Ngoài ra,
bạn vẫn còn có một quản lý và các vấn đề bảo trì, bởi vì mỗi chạy
trường hợp đã được cập nhật khi một người tiêu dùng dịch vụ mới được giới thiệu.
giới thiệu một bên ngoài để xử lý ủy quyền và xác thực là một
bước đi đúng hướng, như bạn có thể trực thuộc Trung ương quản lý những người được ủy quyền để làm những gì.
Nhưng bạn vẫn phải giải quyết một vài vấn đề.
Một là hầu hết SOA thực thi được sessionless, vì vậy bạn cần phải chắc chắn
này bên ngoài sẽ không trở thành một hiệu suất bottleneck khi mỗi
yêu cầu đã được xác thực và thẩm quyền với nó.
Thứ hai là rằng bạn không muốn cặp vợ chồng dịch vụ của bạn để này bên ngoài, nhưng
mỗi dịch vụ cần phải biết bằng cách nào đó nó nói chuyện với bên ngay ngoài
và không để một số impersonator độc hại.
93. Giải pháp
chúng ta cần phải "bên ngoài chịu trách nhiệm xác thực và ủy quyền" để
cấp độ tiếp theo.
Thực hiện các mô hình nhà cung cấp danh tính để có được đăng nhập đơn cho các dịch vụ
của người tiêu dùng ủy quyền.
The nhận dạng nhà cung cấp mô hình, minh họa trong hình 4,11, là một sự phát triển của Trung
kho lưu trữ danh tính đã đề cập ở phần trước. Trước khi chúng tôi xem xét làm thế nào pat-nhàn giải quyết những vấn đề còn lại được trả lời bởi các tùy chọn khác, Hãy khám phá com-ponents của các mô hình và vai trò của họ.
Các nhà cung cấp nhận dạng mô hình bao gồm hai thành phần chính, cung cấp
và máy chủ token.
- cung cấp - thành phần này chịu trách nhiệm cho việc tạo ra bản sắc, đặc quyền
cấp, và như thế, và để lưu trữ các danh tính và cung cấp cho họ để phục vụ tệ nạn. Nó cũng là trách nhiệm thu hồi thông tin đăng nhập khi cần thiết. Các thành phần provi-sioning cũng có thể kiểm tra và tiết kiệm bất kỳ "danh tính" tạo, Cập Nhật, hoặc
thu hồi.
– mã thông báo máy chủ - máy chủ token chịu trách nhiệm xác minh yêu cầu bồi thường danh tính
hoặc đặc quyền và cung cấp bằng chứng rằng những tuyên bố này là chính xác. Nó cũng là
chịu trách nhiệm về chuyển đổi các định dạng mã thông báo. Chuyển đổi định dạng là cần thiết
vì dịch vụ khác nhau, đặc biệt là nếu họ thuộc về tổ chức khác nhau,
don't nhất thiết phải hiểu các thẻ cùng một. Giả sử các dịch vụ khách hàng tại
hình 4,10 có thể sử dụng giấy chứng nhận X.509, và các dịch vụ chương trình khuyến mãi, mà có thể
thuộc về một cơ quan PR bên ngoài, có thể sử dụng SAML khẳng định (thêm rằng trong
94. công nghệ lập bản đồ phần). Trong những trường hợp này, mã thông báo hệ phục vụ có thể chuyển đổi
giữa các định dạng trong khi duy trì xác minh danh tính.
Các nhà cung cấp nhận dạng như thế nào? Khái niệm cốt lõi là sự tin tưởng, và cơ học
để sử dụng nó xây dựng trên cơ sở hạ tầng thành công trước đây như PKI. Một người tiêu dùng dịch vụ,
mà đã đi qua cung cấp với một nhà cung cấp danh tính thời gian trong các
quá khứ, cố gắng truy cập một dịch vụ. Khi gửi một tin nhắn, làm cho người tiêu dùng dịch vụ
một số khẳng định về danh tính của nó, khả năng của mình, hoặc cả hai. Nếu các dịch vụ tín thác iden-tity nhà cung cấp, nó có thể yêu cầu các nhà cung cấp danh tính nếu yêu cầu thực hiện bởi dịch vụ con-sumer là chính hãng, và nếu họ là nó có thể chấp nhận của người tiêu dùng dịch vụ yêu cầu.
nếu điều này tương tác có vẻ khó hiểu, chỉ cần suy nghĩ về thợ rừng và các ca đoàn
trong "Lumberjack bài hát" bởi Monty Python. Lumberjack có hai khẳng định: "tôi là một
lumberjack và tôi đang OK," và các ca đoàn, hoạt động như một nhà cung cấp danh tính, xác nhận rằng,
"ông là một thợ rừng và ông là OK."
Nếu chúng tôi quay trở lại các tạp chí đăng ký cơ quan kịch bản trình bày trong vấn đề
mô tả, xác thực và ủy quyền có thể làm theo các bước trong hình 4.12.
Dịch vụ đề xuất được sẵn sàng để gửi một yêu cầu cho dịch vụ khách hàng để có được một danh sách
của giảm giá cho một khách hàng. Nó sẽ sau đó ký điện tử yêu cầu này như là một bằng chứng cho thấy nó có
credentials trong các nhà cung cấp nhận dạng. Dịch vụ khách hàng có thể sau đó kiểm tra tuyên bố này
với các nhà cung cấp nhận dạng, mà sẽ trở về một mã thông báo hoặc một giấy chứng nhận để kiểm chứng rằng
Dịch vụ đề xuất được quyền cho dịch vụ này. Các nhà cung cấp nhận dạng dấu hiệu này certif-cate với khóa riêng của nó. Dịch vụ khách hàng sau đó có thể xác minh nhận dạng pro-vider ký giấy chứng nhận, và bởi vì nó tin tưởng các nhà cung cấp danh tính, nó có thể tôn vinh
giấy chứng nhận và trở về danh sách giảm giá để dịch vụ đề xuất.
các nhà cung cấp nhận dạng là một bên ngoài, vì vậy dịch vụ, giống như các dịch vụ khách hàng
và những người khác, không cần phải tìm ra làm thế nào để xác nhận người gọi. Quá trình này cũng
giải quyết vấn đề khớp nối bằng cách chỉ yêu cầu dịch vụ khách hàng để biết các
đang được dịch, vui lòng đợi..