Điểm:0

Làm cách nào để vượt qua chứng chỉ AD FS catch-22 theo cách thủ công

lá cờ mx

Tôi không thể bắt đầu dịch vụ AD FS. Điều này là do nó được định cấu hình bằng chứng chỉ có tập hợp các tiện ích mở rộng X509 quá phức tạp không cần thiết. Điều này khiến dịch vụ không thành công với lỗi 102, đây là một ngoại lệ đối số null. Thầm lặng.

Chi tiết ngoại lệ: 
System.ArgumentNullException: Giá trị không được rỗng.
Tên tham số: chứng chỉ
   tại System.IdentityModel.Tokens.X509SecurityToken..ctor(Chứng chỉ X509Certificate2, String id, Boolean clone, Boolean dùng một lần)
   tại Microsoft.IdentityServer.Service.Configuration.MSISSecurityTokenServiceConfiguration.Create(Boolean forSaml, Boolean forPassive)
   tại Microsoft.IdentityServer.Service.Policy.PolicyServer.Service.ProxyPolicyServiceHost.ConfigureWIF()
   tại Microsoft.IdentityServer.Service.SecurityTokenService.MSISConfigurableServiceHost.Configure()
   tại Microsoft.IdentityServer.Service.Policy.PolicyServer.Service.ProxyPolicyServiceHost.Create()
   tại Microsoft.IdentityServer.ServiceHost.STSService.StartProxyPolicyStoreService(ServiceHostManager serviceHostManager)
   tại Microsoft.IdentityServer.ServiceHost.STSService.OnStartInternal(Boolean requestAdditionalTime)

Được rồi, vì vậy tôi cần thay đổi chứng chỉ. Tìm kiếm cách để làm điều đó, có rất nhiều tài nguyên. Mỗi người muốn bạn mở phần đính vào AD FS MMC. Bài viết nào báo lỗi:

ADMIN0017: Đã xảy ra ngoại lệ khi kết nối với dịch vụ cấu hình (...) 
hoặc Dịch vụ Windows AD FS không chạy.

Nói cách khác, ADFS thực hiện điều mà tôi chỉ có thể mô tả là cực kỳ ngu ngốc. Đó là

  • Cho phép người dùng định cấu hình theo cách mà nó sẽ không khởi động.
  • Không cho phép người dùng thay đổi cấu hình nếu nó không chạy.

Có một lệnh powershell thực hiện điều tương tự;

Set-AdfsCertificate -CertificateType Service-Communications -Thumbprint <paste hex thumb>

Dẫn đến cùng một sự ngớ ngẩn:

Set-AdfsCertificate : Không thể kết nối với net.tcp://localhost:1500/policy

Điều tương tự cũng xảy ra với các lệnh powershell adfs khác.

Nhưng: Tệ nhất là cấu hình khó hiểu và phức tạp. Dường như chỉ có một cách cụ thể để thiết lập chứng chỉ hoạt động và tôi bị lạc trong biển tiện ích mở rộng khóa, tiện ích mở rộng khóa mở rộng, tên thay thế, phương pháp khóa, quyền máy tính, quyền người dùng, quyền tài khoản dịch vụ, chi tiết pfx khóa riêng, phiên bản pfx, phiên bản nhà cung cấp dịch vụ tiền điện tử, v.v. Tài liệu của Microsoft đã lỗi thời, 404'd và/hoặc không đầy đủ.

Vì vậy, tôi cần phải thay thế chứng chỉ này vài chục lần thông qua thử và sai cho đến khi có thứ gì đó dính vào.Cách dễ dàng để thay đổi chứng chỉ mà ADFS sử dụng là gì

  1. Không liên quan đến việc sử dụng bảng điều khiển AD FS MMC. Điều này sẽ chỉ hoạt động nếu dịch vụ có thể bắt đầu, dịch vụ này không thể.
  2. Không liên quan đến các lệnh powershell ADFS, không may là điều này cũng yêu cầu dịch vụ phải chạy.

Chỉnh sửa: Ngay cả khi cài đặt lại ADFS không phải giải quyết vấn đề. Ngay cả khi một cơ sở dữ liệu cấu hình khác được chọn. Tôi vẫn gặp lỗi 102. Có vẻ như cài đặt chứng chỉ không thực sự được lưu trữ trong cơ sở dữ liệu.

Nhìn xa hơn một chút, bằng cách cho phép kiểm toán trên C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys thư mục, tôi nhận thấy lỗi này (các chi tiết riêng tư bị xáo trộn):

Vấn đề:
    ID bảo mật: MYDOMAIN\adfsroot$
    Tên tài khoản: adfsroot$
    Tên miền tài khoản: MYDOMAIN
    ID đăng nhập: 0xFFFFFFF

Tham số mật mã:
    Tên nhà cung cấp: Nhà cung cấp lưu trữ khóa phần mềm của Microsoft
    Tên thuật toán: RSA
    Tên khóa: {UUID-ĐÂY}
    Loại chìa khóa: Chìa khóa máy.

Hoạt động mật mã:
    Thao tác: Tạo Key.
    Mã trả về: 0x80090010

Điều này chỉ ra một vấn đề về quyền; chương trình không thể tạo khóa RSA như một phần của quá trình khởi động. Nó đang cố truy cập một tệp khóa máy, có tên như sau. Giả sử khóa UUID và máy UUID là

12345678-90AB-CDEF-1234-567890ABCDEF
11223344-5566-7788-9900-AABBCCDDEEFF

Các tập tin dường như được đặt tên là:

1234567890ABCDEF1234567890ABCDEF_11223344-5566-7788-9900-AABBCCDDEEFF.sys

Chứa một biểu diễn nhị phân văn bản gốc của khóa riêng, được bảo vệ bởi các quyền NTFS. ADFS tạo bốn tệp như vậy và người dùng của nó có quyền làm như vậy;

Tuy nhiên, khi tôi kiểm tra một trong bốn tệp khóa riêng được tạo, trong khi nó có đúng chủ sở hữu của MYDOMAIN\adfsroot$, nó không có quyền chính xác: quyền hiệu quả cho adfsroot$ không có quyền truy cập nào cả. (Dẫn đến lỗi 102 ở trên).Rõ ràng ADFS đang ném chìa khóa tục ngữ đi sau khi khóa cửa hoặc hệ thống tệp đang thực hiện việc này theo một cách nào đó do nó định cấu hình sai MáyPhím thư mục.

Làm cách nào để chạy phần mềm được viết dở này?

Điểm:0
lá cờ mx

Kiểm tra xem MáyPhím có quyền chính xác.

Để khắc phục sự cố: Tôi đã cấp adfsroot người dùng các quyền NTFS nâng cao này, trên thư mục gốc MáyPhím thư mục:

Danh sách thư mục 
Đọc thuộc tính
Đọc các thuộc tính mở rộng
Tạo tập tin
Tạo thư mục
Viết thuộc tính
Viết các thuộc tính mở rộng
đọc quyền

Hãy đảm bảo rằng Áp dụng đối với giá trị là Thư mục này, thư mục con và tập tin (để cho phép kế thừa). sử dụng cacls hoặc icacls, ký hiệu sẽ là:

MYDOMAIN\adfsroot$:(OI)(CI)(R,W)

Vì một số lý do, ADFS hoạt động sai ở đây và giá trị mặc định được cung cấp bởi tài liệu không hoạt động.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.