คำถามติดแท็ก openid-connect

3
ขั้นตอนการลงชื่อเพียงครั้งเดียวโดยใช้ JWT สำหรับการตรวจสอบสิทธิ์ข้ามโดเมน
มีข้อมูลมากมายบนเว็บเกี่ยวกับการใช้ JWT ( Json Web Token) สำหรับการพิสูจน์ตัวตน แต่ผมก็ยังไม่พบว่ามีคำอธิบายที่ชัดเจนของสิ่งที่ไหลควรจะเป็นเมื่อใช้ JWT สัญญาณสำหรับการลงชื่อเข้าใช้ในการแก้ปัญหาเดียวในสภาพแวดล้อมหลายโดเมน ฉันทำงานให้กับ บริษัท แห่งหนึ่งซึ่งมีไซต์จำนวนมากในโฮสต์ที่แตกต่างกัน ใช้ Let 's example1.comและexample2.com เราจำเป็นต้องมี single sign-on วิธีการแก้ปัญหาซึ่งหมายความว่าถ้าพิสูจน์ผู้ใช้บนexample1.comเราต้องการให้เขายังได้รับการรับรองความถูกต้องในexample2.comโดยอัตโนมัติ เมื่อใช้ขั้นตอนการเชื่อมต่อ OpenIdฉันเข้าใจว่าผู้ใช้ที่ต้องการตรวจสอบสิทธิ์บนexample1.comจะถูกเปลี่ยนเส้นทางไปยังเซิร์ฟเวอร์การตรวจสอบความถูกต้อง (หรือOP: "OpenId Provider") ผู้ใช้พิสูจน์ตัวตนบนเซิร์ฟเวอร์นั้นซึ่งจะเปลี่ยนเส้นทางเขากลับไปยังไซต์example1.comดั้งเดิมด้วยโทเค็น JWT ที่ลงชื่อ (ฉันเข้าใจว่ามีอีกขั้นตอนหนึ่งที่ส่งคืนโทเค็นระดับกลางที่สามารถแลกเปลี่ยนกับโทเค็น JWT จริงได้ในภายหลัง แต่ฉันไม่คิดว่าสิ่งนี้จำเป็นสำหรับเรา) ... ตอนนี้ผู้ใช้กลับมาที่example1.comและได้รับการรับรองความถูกต้องแล้ว! เขาสามารถส่งคำขอส่งโทเค็น JWT ในAuthenticationส่วนหัวและเซิร์ฟเวอร์สามารถตรวจสอบ JWT ที่ลงนามแล้วดังนั้นจึงสามารถระบุผู้ใช้ได้ ดี! คำถามแรก: ควรเก็บโทเค็น JWT บนไคลเอนต์อย่างไร นอกจากนี้อีกครั้งข้อมูลจำนวนมากเกี่ยวกับเรื่องนี้และคนที่ดูเหมือนจะยอมรับว่าการใช้เป็นวิธีที่จะไปมากกว่าดีเก่าWeb Storage cookiesเราต้องการให้ JWT คงอยู่ระหว่างการรีสตาร์ทเบราว์เซอร์ดังนั้นขอใช้Local …

5
.NET Core Identity Server 4 Authentication VS Identity Authentication
ฉันกำลังพยายามทำความเข้าใจวิธีที่เหมาะสมในการตรวจสอบสิทธิ์ใน ASP.NET Core ฉันได้ดูทรัพยากรหลายอย่าง (ซึ่งส่วนใหญ่ล้าสมัย) Simple-Implementation-Of-Microsoft-Identity บทนำสู่การพิสูจน์ตัวตนด้วย ASP.Core MSDNs Introduction to Identity บางคนนำเสนอโซลูชันที่ปรับเปลี่ยนได้โดยระบุว่าจะใช้โซลูชันบนคลาวด์เช่น Azure AD หรือใช้ IdentityServer4 และโฮสต์ Token Server ของฉันเอง ในเวอร์ชันเก่ากว่าของ. Net หนึ่งในรูปแบบการพิสูจน์ตัวตนที่ง่ายกว่าคือการสร้าง Custom Iprinciple และเก็บข้อมูลผู้ใช้การพิสูจน์ตัวตนเพิ่มเติมไว้ภายใน public interface ICustomPrincipal : System.Security.Principal.IPrincipal { string FirstName { get; set; } string LastName { get; set; } } public class CustomPrincipal : …

7
เจตนาของเวลาหมดอายุ ID Token ใน OpenID Connect คืออะไร?
ใน OpenID Connect โทเค็นการเข้าถึงมีเวลาหมดอายุ สำหรับโฟลว์รหัสการอนุญาตโดยทั่วไปจะสั้น (เช่น 20 นาที) หลังจากนั้นคุณใช้โทเค็นการรีเฟรชเพื่อขอโทเค็นการเข้าถึงใหม่ ID tokenนอกจากนี้ยังมีเวลาหมดอายุ คำถามของฉันคือเจตนาของสิ่งนี้คืออะไร? เวลาหมดอายุของโทเค็น ID ใด ๆ น้อยกว่าเวลาหมดอายุของโทเค็นการรีเฟรชจะหมายความว่าในที่สุดคุณจะมีโทเค็น ID ที่หมดอายุ แต่โทเค็นการเข้าถึงที่ถูกต้อง คุณตั้งใจที่จะ: กำหนดให้โทเค็นรหัสของคุณหมดอายุนานกว่าการหมดอายุโทเค็นการรีเฟรชหรือ ตั้งค่าให้หมดอายุเช่นเดียวกับโทเค็นการเข้าถึงและดำเนินการบางอย่าง (อะไรนะ?) เมื่อหมดอายุหรือ เพียงแค่ใช้โทเค็น ID ในไคลเอนต์ของคุณในใบเสร็จรับเงินจากนั้นละเว้นเวลาหมดอายุหลังจากนั้น? ข้อกำหนดOpenID Connectบอกว่าเมื่อตรวจสอบความถูกต้องของโทเค็น ID "The current time MUST be before the time represented by the exp Claim." ซึ่ง (อาจ) รองรับตัวเลือกที่สามด้านบน แก้ไข เนื่องจาก OpenID …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.