مكتبة Kerberos كاملة مبنية بالكامل في تعليمات برمجية مُدارة بدون (العديد) من تبعيات نظام التشغيل.
يتم دعم هذا المشروع من قبل مؤسسة .NET.
هذه المكتبة غير مدعومة رسميًا من قبل Microsoft. إذا كنت تستخدمه عبر ODP.NET الخاص بـ Oracle، فسيتم دعم Kerberos.NET فقط عبر دعم Oracle. يجب عليك الاتصال بدعم Oracle، حتى إذا كنت تعلم أن المشكلة موجودة في Kerberos.NET. سيعمل دعم Oracle مع Microsoft مباشرةً في حالة وجود المشكلة في Kerberos.NET. ستقوم Microsoft بإغلاق حالات الدعم التي تم إنشاؤها مباشرة مع Microsoft لـ Kerberos.NET.
للتلخيص: لا يتم دعم هذا الريبو رسميًا من قبل Microsoft، على الرغم من حقيقة أن بعض موظفي Microsoft قد يقومون بإدارته والمساهمة فيه. إنهم يقومون بذلك إما في أوقات فراغهم، أو جزئيًا كوقت عمل للاستخدام الداخلي، دون أي اتفاقية مستوى خدمة من Microsoft (أو من موظفي Microsoft). يتم دعم استخدام ODP.NET لـ Kerberos.NET فقط من خلال دعم Oracle.
مكتبة مدمجة في .NET تتيح لك العمل على رسائل Kerberos. يمكنك تشغيل عميل أو استضافة مركز التوزيع الرئيسي (KDC) الخاص بك أو مجرد التحقق من صحة التذاكر الواردة. من المفترض أن تكون خفيفة الوزن قدر الإمكان.
يتوفر الغوص العميق في تصميم Kerberos.NET ويستحق القراءة.
هذا المشروع عبارة عن مكتبة في المقام الأول، ولكنه يتضمن أيضًا مجموعة من الأدوات المفيدة التي تغلف المكتبة للمساعدة في إنشاء التطبيقات واستكشاف مشكلات Kerberos وإصلاحها.
يمكنك العثور على مثبت ملحق Fiddler ضمن الإصدارات على الجانب الأيمن من هذه الصفحة. لمزيد من المعلومات، انتقل إلى قراءة مقال حول كيفية تثبيته واستخدامه.
أداة سطر أوامر Bruce عبارة عن مجموعة من الأدوات المساعدة التي تتيح لك التفاعل مع مكونات مكتبة Kerberos.NET وهي متاحة عبر dotnet tool install bruce -g
. يتضمن أدوات مفيدة لأشياء مثل ذاكرة التخزين المؤقت للتذاكر وإدارة لوحة المفاتيح. ويتضمن أيضًا الأداة المساعدة Ticket Decoder المذكورة أدناه. تتبع الأداة بشكل أو بآخر معايير سطر الأوامر لمعهد ماساتشوستس للتكنولوجيا وHeimdal، ولكن للحصول على مزيد من المعلومات حول جميع الأدوات الموجودة في المجموعة، help
من سطر أوامر Bruce.
راجع منشور المدونة هذا حول كيفية استخدام الأداة.
عرض وتعديل ملفات التكوين krb5.
قم بفك تشفير Kerberos/التفاوض على التذاكر وفك التشفير اختياريًا إذا كنت تعرف الأسرار.
حذف أي ملفات ذاكرة التخزين المؤقت للتذكرة.
قم بمصادقة المستخدم واطلب TGT مع مجموعة من الخيارات المتاحة للطلب.
عرض جميع التذاكر في ذاكرة التخزين المؤقت وطلب المزيد من التذاكر بشكل اختياري.
أرسل "ping" AS-REQ إلى KDC للمستخدم الحالي أو المقدم للحصول على البيانات التعريفية للمستخدم.
عرض ومعالجة ملفات لوحة المفاتيح مع دعم استكشاف الأخطاء وإصلاحها.
طلب تذكرة للمستخدم الحالي وتنسيق التفاصيل بطريقة مفيدة.
تعرض الأداة رسائل تسجيل مفيدة إذا قمت بتمرير معلمة سطر الأوامر /verbose
.
ستعمل المكتبة على كافة الأنظمة الأساسية المدعومة .NET Standard 2.0 مع بعض التحذيرات.
هناك طريقتان يمكنك اتباعهما لاستخدام هذه المكتبة. الأول هو تنزيل الكود وإنشائه محليًا. الخيار الثاني الأفضل هو استخدام nuget فقط.
PM> تثبيت حزمة Kerberos.NET
هناك ثلاث طرق يمكنك من خلالها استخدام هذه المكتبة.
العميل بسيط عن عمد مقارنة بالعملاء الموجودين في الأنظمة الأساسية الأخرى. إنها كاملة المواصفات وتدعم إنشاء رسائل SPNego.
varclient = new KerberosClient();var kerbCred = new KerberosPasswordCredential("[email protected]", "userP@ssw0rd!");انتظار العميل.Authenticate(kerbCred);var تذكرة = انتظار العميل.GetServiceTicket("host/appservice" .corp.identityintervention.com");var header = "التفاوض" + Convert.ToBase64String(ticket.EncodeGssApi().ToArray());
تعد استضافة KDC أكثر تعقيدًا بعض الشيء لأنها تتطلب الاستماع إلى منفذ معين. عادة ما تستمع على المنفذ 88.
منفذ var = 88؛var options = new ListerOptions{ListeningOn = new IPEndPoint(IPAddress.Loopback, port),DefaultRealm = "corp.identityintervention.com".ToUpper(),RealmLocator = realmName => new MyRealmService(realmName)};var المستمع = جديد KdcServiceListener(options); انتظر المستمع.Start();
سينتظر المستمع حتى يتم استدعاء (أو التخلص) listener.Stop()
.
تتم مصادقة التذكرة على مرحلتين. تقوم المرحلة الأولى بالتحقق من صحة التذكرة عبر IKerberosValidator
مع التطبيق الافتراضي لـ KerberosValidator
. تتضمن المرحلة الثانية تحويل التذكرة إلى ClaimsIdentity
قابلة للاستخدام (A KerberosIdentity : ClaimsIdentity
على وجه التحديد)، والذي يحدث في KerberosAuthenticator
.
أسهل طريقة للبدء هي إنشاء KerberosAuthenticator
جديد واستدعاء Authenticate
. إذا كنت بحاجة إلى تعديل سلوك التحويل، فيمكنك القيام بذلك عن طريق تجاوز طريقة ConvertTicket(DecryptedData data)
.
var Authenticator = new KerberosAuthenticator(new KeyTable(File.ReadAllBytes("sample.keytab")));varident = Authenticator.Authenticate("YIIHCAYGKwYBBQUCoIIG...");Assert.IsNotNull(identity);var name = الهوية.Name ;Assert.IsFalse(string.IsNullOrWhitespace(name));
لاحظ أن المعلمة المُنشئة للمُصادق هي KeyTable
. يعد KeyTable
تنسيقًا شائعًا يستخدم لتخزين المفاتيح على الأنظمة الأساسية الأخرى. يمكنك إما استخدام ملف تم إنشاؤه بواسطة أداة مثل ktpass
، أو يمكنك فقط تمرير KerberosKey
أثناء إنشاء مثيل وسيكون له نفس التأثير.
سيتم بشكل عام الاحتفاظ بحزم nuget محدثة مع أي تغييرات تطرأ على المكتبة الأساسية.
مهلا، إنه يعمل! ما عليك سوى إضافة حزمة nuget كمرجع والذهاب.
مزيد من المعلومات
يتطلب Active Directory وجود هوية تتطابق مع المجال الذي يتم إرسال الرمز المميز إليه. يمكن أن تكون هذه الهوية أي مستخدم أو كائن كمبيوتر في Active Directory، ولكن يجب تكوينها بشكل صحيح. وهذا يعني أنه يحتاج إلى اسم الخدمة الرئيسي (SPN). يمكنك العثور على تعليمات حول إعداد مستخدم اختباري هنا.
يدعم Active Directory المطالبات منذ Server 2012. في ذلك الوقت، لم يكن بإمكانك الوصول إلى المطالبات إلا من خلال مبادئ Windows أو السحر المظلم لـ ADFS. يدعم Kerberos.NET الآن تحليل المطالبات في تذاكر kerberos. قم بإلقاء نظرة على دليل المطالبات لمزيد من المعلومات حول إعداد هذا الأمر.
يدعم Kerberos.NET تنسيق ملف KeyTable (keytab) لتمرير المفاتيح المستخدمة لفك تشفير تذاكر Kerberos والتحقق من صحتها. يعد تنسيق ملف keytab تنسيقًا شائعًا تستخدمه العديد من الأنظمة الأساسية لتخزين المفاتيح. يمكنك إنشاء هذه الملفات على نظام التشغيل Windows باستخدام الأداة المساعدة لسطر الأوامر ktpass
، والتي تعد جزءًا من حزمة أدوات إدارة الخادم البعيد (RSAT). يمكنك تثبيته على خادم عبر PowerShell (أو من خلال مربع حوار إضافة مكونات Windows):
إضافة Windowsميزة RSAT
من هناك يمكنك إنشاء ملف keytab عن طريق تشغيل الأمر التالي:
ktpass /princ HTTP/[email protected] /mapuser IDENTITYINTERserver01$ /pass P@ssw0rd! / خارج Sample.keytab /crypto all /PTYPE KRB5_NT_SRV_INST /mapop set
يتم استخدام المعلمة princ
لتحديد PrincipalName الذي تم إنشاؤه، ومستخدم mapuser
الذي يتم استخدامه لتعيينه للمستخدم في Active Directory. تحدد معلمة crypto
الخوارزميات التي يجب أن تقوم بإنشاء الإدخالات.
يتم دعم تذاكر AES محليًا. لا حاجة لفعل أي شيء إضافي!
يتضمن هذا أيضًا الآن دعم SHA256 وSHA384 من خلال RFC8009.
لمزيد من المعلومات، راجع التدريع السريع.
وهذا غير مدعوم حاليًا، لكنه موجود في خريطة الطريق.
يمكنك إضافة الدعم الخاص بك لخوارزميات أخرى مثل DES (لا أعرف لماذا تفعل ذلك، ولكن...) حيث تقوم بربط نوع التشفير بـ Func<> الذي يقوم بإنشاء برامج فك تشفير جديدة. لا يوجد أيضًا ما يمنعك من تنفيذ هذه العملية إذا أردت.
KerberosRequest.RegisterDecryptor( EncryptionType.DES_CBC_MD5، (رمز مميز) => جديد DESMD5DecryptedData(token));
يستخدم اكتشاف إعادة التشغيل المضمن ذاكرة التخزين المؤقت MemoryCache
لتخزين المراجع مؤقتًا إلى تجزئات أرقام التذكرة. تتم إزالة هذه المراجع عند انتهاء صلاحية التذكرة. تحدث عملية الكشف مباشرة بعد فك التشفير بمجرد توفر الرقم التسلسلي للموثق.
لاحظ أن منطق الكشف المضمن لا يعمل بشكل فعال عندما يتم تجميع التطبيق لأنه لا تتم مشاركة ذاكرة التخزين المؤقت عبر الأجهزة. يستخدم التطبيق المدمج خدمة في الذاكرة وبالتالي لا تتم مشاركته مع أي شخص.
ستحتاج إلى إنشاء ذاكرة تخزين مؤقت مشتركة عبر الأجهزة حتى تعمل بشكل صحيح في بيئة مجمعة. لقد تم تبسيط ذلك بشكل كبير من خلال خدمات حقن التبعية .NET Core الجديدة. كل ما عليك فعله هو تسجيل تطبيق IDistributedCache
. يمكنك العثور على مزيد من المعلومات حول ذلك في مستندات Microsoft.
إذا كنت ترغب في استخدام اكتشاف إعادة التشغيل الخاص بك، فما عليك سوى تنفيذ واجهة ITicketReplayValidator
وتمريرها في مُنشئ KerberosValidator
.
هناك عينات!
يتم تشغيل KerbCrypto من خلال تنسيقات الرموز المميزة الستة المدعومة.
rc4-kerberos-data
rc4-spnego-data
aes128-kerberos-data
aes128-spnego-data
aes256-kerberos-data
aes256-spnego-data
KerbTester أداة سطر أوامر تستخدم لاختبار التذاكر الحقيقية وتفريغ النتائج التي تم تحليلها.
KerberosMiddlewareEndToEndSample نموذج شامل يوضح كيفية مطالبة الخادم بالتفاوض واستجابة المتصفح الذي تمت محاكاته.
KerberosMiddlewareSample نموذج بسيط للبرامج الوسيطة للنجاح/الفشل والذي يقوم بفك تشفير التذكرة إذا كانت موجودة، ولكن بخلاف ذلك لا يطالب أبدًا بالتفاوض.
KerberosWebSample هو نموذج لمشروع ويب مخصص للاستضافة في IIS والذي يطالب بالتفاوض والتحقق من صحة أي تذاكر واردة من المستعرض.
هذا المشروع حاصل على ترخيص MIT. راجع ملف الترخيص لمزيد من التفاصيل. راجع أيضًا ملف الإشعارات لمزيد من المعلومات حول تراخيص المشاريع التي يعتمد عليها ذلك.
تأتي هذه المكتبة مع أداة مساعدة اختيارية لفك تشفير تذاكر الخدمة. إنه سهل الاستخدام. ما عليك سوى نسخ نسخة Base64 المشفرة من التذكرة في مربع النص الأيسر. سيقوم بفك تشفير الرسالة غير المشفرة إذا لم تقدم مفتاحًا. سيحاول فك تشفير الرسالة إذا قمت بتوفير مفتاح. لن تحتاج إلى توفير قيمة مضيف إذا كانت التذكرة مشفرة باستخدام RC4، ولكنها ستحتاج إلى قيمة مضيف إذا كانت مشفرة باستخدام AES (لاشتقاق الملح). وبدلاً من ذلك، يمكنك أيضًا تضمين ملف keytab إذا كان لديك ذلك أيضًا.
يمكنك تشغيله باستخدام أداة Bruce باستخدام bruce kdecode
.
ستقوم وحدة فك الترميز بتحويل تذكرة Kerberos إلى طريقة عرض شجرة منظمة. العملية هي Kerberos ASN.1 => JSON () => عرض الشجرة. إليك ملف JSON الوسيط الذي يعرض لك كافة المعلومات المتوفرة لك في التذكرة.
{ "Request": {"KrbApReq": { "ProtocolVersionNumber": 5, "MessageType": "KRB_AP_REQ", "ApOptions": "محجوزة", "Ticket": {"TicketNumber": 5,Realm": "CORP. IDENTITYINTERVENTION.COM"،"SName": { "FullyQualifiedName": "desktop-h71o9uu"، "IsServiceName": false، "Type": "NT_PRINCIPAL"، "Name": ["desktop-h71o9uu" ]}"،EncryptedPart": { "EType": "AES256_CTS_HMAC_SHA1_96"، "KeyVersionNumber": 3- "الشفرة": "Vo4uodU2...snip...XBwjmsshgyjs+Vr+A=="} }, "Authenticator": {"EType": "AES256_CTS_HMAC_SHA1_96",KeyVersionNumber": null,Cipher": "NnLmEFkmO3HXCS...snip. ..up0YmNW5AicQVvvk" }}"،KrbApRep": null }, "تم فك التشفير": {"خيارات": "محجوزة"، "EType": "AES256_CTS_HMAC_SHA1_96"، "SName": { "FullyQualifiedName": "desktop-h71o9uu"، "IsServiceName": false، "Type": "NT_PRINCIPAL"، "الاسم": ["سطح المكتب-h71o9uu" ]},"Authenticator": { "AuthenticatorVersionNumber": 5، "Realm": "CORP.IDENTITYINTERVENTION.COM"، "CName": {"FullyQualifiedName": "jack"، "IsServiceName": false،"Type": " NT_PRINCIPAL"،"الاسم": [ "مقبس"] }، "المجموع الاختباري": {"النوع": "32771"، "المجموع الاختباري": "EAAAAAAAAAAAAAAAAAAAAAAAAA8QAAA" }، "CuSec": 305، "CTime": "2021-04-21T17:38:11+00:00"، "المفتاح الفرعي": {"الاستخدام": "غير معروف" "،"النوع": "AES256_CTS_HMAC_SHA1_96"، "KeyValue": "nPIQrMQu/tpUV3dmeIJYjdUCnpg0sVDjFGHt8EK94EM=" }، "SequenceNumber": 404160760، "AuthorizationData": [{ "Type": "AdIfRelevant"، "Data": "MIHTMD+gBAICAI2hNwQ1M...snip...BJAE8ATgAuAEMATwBNAA=="} ]},Ticket": { "Flags": ["EncryptedPreAuthentication"،"PreAuthenticated"، "Renewable"، "Forwardable" ]، "Key": {"الاستخدام": "غير معروف"،"EType": "AES256_CTS_HMAC_SHA1_96"، "KeyValue": "gXZ5AIsNAdQSo/qdEzkfw3RrLhhypyuG+YcZwqdX9mk=" }، "CRealm": "CORP.IDENTITYINTERVENTION.COM"، "CName": {"FullyQualifiedName": "jack"، "IsServiceName": false،"Type": "NT_PRINCIPAL"، "Name": [ "jack"] }، "Transited": {"Type": "DomainX500Compress"، "Contents": "" }، "AuthTime": "2021-04 -21T17:24:53+00:00"، "وقت البدء": "2021-04-21T17:38:11+00:00"، "وقت الانتهاء": "2021-04-22T03:24:53+00:00"، "RenewTill": "2021-04-28T17:24:53" +00:00"، "CADdr": فارغ، "AuthorizationData": [{ "النوع": "AdIfRelevant"، "Data": "MIIDIjCCAx6gBAICAIChg...snip...muoGI9Mcg0="},{ "Type": "AdIfRelevant"، "Data": "MF0wP6AEAgIAj...snip...AXg9hCAgAACTDBBAAAAAA="} ]} ,"DelegationTicket": null,"SessionKey": { "الاستخدام": null, "EncryptionType": "AES256_CTS_HMAC_SHA1_96"، "Host": null، "PrincipalName": null، "Version": null، "Salt": ""، "Password": null، "IterationParameter": ""، "PasswordBytes": ""، "SaltFormat": "ActiveDirectoryService"، "RequiresDerivation": false},"Skew": "00:05:00" }, "المحسوب": {"الاسم": "[email protected]"، "Restrictions": { "KerbAuthDataTokenRestrictions": [{ "RestrictionType": 0، "Restriction": {"Flags": "Full"،" TokenIntegrityLevel": "عالي"، "MachineId": "Txr82+sI2kbFmPnkrjldLUfESt/oJzLaWWNqCkOgC7I=" }, "Type": "KerbAuthDataTokenRestrictions"},{ "RestrictionType": 0, "Restriction": {"Flags": "Full"، "TokenIntegrityLevel": "High"، "MachineId" : "Txr82+sI2kbFmPnkrjldLUfESt/oJzLaWWNqCkOgC7I = }, "Type": "KerbAuthDataTokenRestrictions"} ], "KerbLocal": [{ "Value": "EBeD2EICAAAJMMEEAAAAAA==", "Type": "KerbLocal"},{ "Value": "EBeD2EICAAAJMMEEAAAAAA==", "Type": "KerbLocal"} ], "KerbApOptions": [{ "Options": "ChannelBindingSupported", "Type": "KerbApOptions"} ], "KerbServiceTarget": [{ "اسم الخدمة": "[email protected]"، "النوع": "KerbServiceTarget"} ]، "AdWin2kPac": [{ "الوضع": "الخادم"، "DecodingErrors": []، "الإصدار": 0، " LogonInfo": {"PacType": "LOGON_INFO"، "LogonTime": "2021-04-21T17:24:53.4021307+00:00"، "LogoffTime": "0001-01-01T00:00:00+00:00"، "KickOffTime": "0001-01-01T00:00:00" +00:00"،"PwdLastChangeTime":" "2021-01-14T23:55:39.0024458+00:00"، "PwdCanChangeTime": "2021-01-15T23:55:39.0024458+00:00"، "PwdMustChangeTime": "0001-01-01T00:00:00+00:00"، "اسم المستخدم": "jack"، "UserDisplayName": "Jack Handey"، "LogonScript": ""، "ProfilePath": ""، "HomeDirectory" : ""،"HomeDrive": ""،"LogonCount": 99،"BadPasswordCount": 0،"UserId": 1126،"GroupId": 513،"GroupCount": 6،"GroupIds": [ {"RelativeId": 1132،"Attributes": [ "SE_GROUP_MANDATORY"، "SE_GROUP_ENABLED_BY_DEFAULT"، "SE_GROUP_ENABLED"] }، {"RelativeId": 1131،"Attributes": [ "SE_GROUP_MANDATORY"، "SE_GROUP_ENABLED_BY_DEFAULT"، "SE_GROUP_ENABLED"] }، {"RelativeId": 1128،"Attributes": [ "SE_GROUP_MANDATORY"، "SE_GROUP_ENABLED_BY_DEFAULT"، "SE_GROUP_ENABLED"] }، {"RelativeId": 1130،"السمات": [ "SE_GROUP_MANDATORY"، "SE_GROUP_ENABLED_BY_DEFAULT"، "SE_GROUP_ENABLED"] }، {"RelativeId": 513،"Attributes": [ "SE_GROUP_MANDATORY"، "SE_GROUP_ENABLED_BY_DEFAULT"، "SE_GROUP_ENABLED"] "" : "DC01u0000"، "اسم المجال": "CORPu0000"، "DomainId": "S-1-5-21-311626132-1109945507-1757856464"، "Reserved1": "AAAAAAAAAAAA ="، UserAccountControl": [ "ADS_UF_LOCKOUT"، "ADS_UF_NORMAL_ACCOUNT"],"SubAuthStatus": 0,"LastSuccessfulILogon": "1601-01-01T00:00:00+00:00"، "LastFailedILogon": "1601-01-01T00:00:00+00:00" ""FailedILogonCount":" "" ] }],"ResourceDomainId": null,"ResourceGroupCount": 0,"ResourceGroupIds": null,"UserSid": { "Id": 1126, "Attributes": "0", "Value": "S-1-5-21-311626132-1109945507-1757856464-1126"}, "GroupSid": { "المعرف": 513، "السمات": "0"، "القيمة": "S-1-5-21-311626132-1109945507-1757856464-513"}"،GroupSids": [ {"Id": 1132،"Attributes": [ "SE_GROUP_MANDATORY"، "SE_GROUP_ENABLED_BY_DEFAULT" "، "SE_GROUP_ENABLED"],"Value": "S-1-5-21-311626132-1109945507-1757856464-1132" }, {"Id": 1131,"Attributes": [ "SE_GROUP_MANDATORY"، "SE_GROUP_ENABLED_BY_DEFAULT"، "SE_GROUP_ENABLED"],"Value": "S-1-5-21-311626132-1109945507-1757856464-1131" }, {"Id": 1128,"Attributes": [ "SE_GROUP_MANDATORY"، "SE_GROUP_ENABLED_BY_DEFAULT"، "SE_GROUP_ENABLED"],"Value": "S-1-5-21-311626132-1109945507-1757856464-1128" }, {"Id": 1130,"Attributes": [ "SE_GROUP_MANDATORY"، "SE_GROUP_ENABLED_BY_DEFAULT"، "SE_GROUP_ENABLED"],"Value": "S-1-5-21-311626132-1109945507-1757856464-1130" }, {"Id": 513,"Attributes": [ "SE_GROUP_MANDATORY"، "SE_GROUP_ENABLED_BY_DEFAULT"، "SE_GROUP_ENABLED"],"Value": "S-1-5-21-311626132-1109945507-1757856464-513" }, {"Id": 1129,"Attributes": [ "SE_GROUP_MANDATORY"، "SE_GROUP_ENABLED_BY_DEFAULT"، "SE_GROUP_ENABLED"],"Value": "S-1-5-21-311626132-1109945507-1757856464-1129" }],"ExtraSids": [ {"Id": 1,Attributes": "0"، Value": "S-1-18-1" }],"ResourceDomainSid": null,"ResourceGroups": [],"DomainSid": { "Id": 1757856464, "Attributes": "0", "Value": "S-1-5-21-311626132-1109945507-1757856464"} }, "توقيع الخادم": {"النوع": "HMAC_SHA1_96_AES256"، "Signature": "Q0gnRmxBoh5w0DzS"، "RODCIdentifier": 0، "PacType": "0" }، "CredentialType": null، "KdcSignature": {"Type": "HMAC_SHA1_96_AES256"، "Signature": "HVsreq5rqBiPTHIN"، "RODCIDentifier": 0، "PacType": "0" }، "ClientClaims": null، "DeviceClaims": null، "ClientInformation": {"ClientId": "2021-04-21T17:24:53 +00:00"،"الاسم": "مقبس"،"PacType": "CLIENT_NAME_TICKET_INFO" }, "UpnDomainInformation": {"Upn": "[email protected]"، "Domain": "CORP.IDENTITYINTERVENTION.COM"، "Flags": "0"، "PacType": "UPN_DOMAIN_INFO" " }، "DelegationInformation": خالية، "HasRequiredFields": صحيح، "Type": "AdWin2kPac"} ]}"،ValidationMode": "Pac"، "Claims": [{"Type": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/ سيد"،"القيمة": "S-1-5-21-311626132-1109945507-1757856464-1126" }، {"النوع": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname"، "Value" ": "جاك هاندي" }، {"النوع": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"، "Value": "[email protected]" }، {"النوع": "http://schemas .microsoft.com/ws/2008/06/identity/claims/groupsid"، "القيمة": "S-1-5-21-311626132-1109945507-1757856464-1132" }، {"النوع": "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid"، "Value" ": "S-1-5-21-311626132-1109945507-1757856464-1131" }، {"النوع": "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid"، "Value" ": "S-1-5-21-311626132-1109945507-1757856464-1128" }، {"النوع": "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid"،"Value" ": "S-1-5-21-311626132-1109945507-1757856464-1130" }، {"النوع": "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid"، "Value" ": "S-1-5-21-311626132-1109945507-1757856464-513" }، {"النوع": "http://schemas.microsoft.com/ws/2008/06/identity/claims/role"، "Value" ": "مستخدمو المجال" }، {"النوع": "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid"، "Value": "S-1-5-21-311626132-1109945507-1757856464-1129" }، {"اكتب ": "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid"، "القيمة": "S-1-18-1" }] }, "KeyTable": {"FileVersion": 2,"KerberosVersion": 5,"Entries": [ {"EncryptionType": "NULL", "Length": 0,Timestamp": "2021-04-21T23:52: 22.5460123+00:00"،الإصدار": 5،"المضيف": null،"PasswordBytes": "jBBI1KL19X3olbCK/f9p/+cxZi3RnqqQRH4WawB4EzY=",KeyPrincipalName": { "Realm": "CORP.IDENTITYINTERVENTION.COM", "Names": ["STEVE-HOME" ], "NameType": "NT_SRV_HST", "FullyQualifiedName" : "STEVE-HOME"}،"ملح": null }] }}