A Guide to Claims-Based Identity and Access Control (Patterns & Practices) (英語) ペーパーバック – 2010/4/24
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
As systems have become interconnected and more complicated, programmers needed ways to identify parties across multiple computers. One way to do this was for the parties that used applications on one computer to authenticate to the applications (and/or operating systems) that ran on the other computers. This mechanism is still widely used-for example, when logging on to a great number of Web sites. However, this approach becomes unmanageable when you have many co-operating systems (as is the case, for example, in the enterprise). Therefore, specialized services were invented that would register and authenticate users, and subsequently provide claims about them to interested applications. Some well-known examples are NTLM, Kerberos, Public Key Infrastructure (PKI), and the Security Assertion Markup Language (SAML). Most enterprise applications need some basic user security features. At a minimum, they need to authenticate their users, and many also need to authorize access to certain features so that only privileged users can get to them. Some apps must go further and audit what the user does. On Windows®, these features are built into the operating system and are usually quite easy to integrate into an application. By taking advantage of Windows integrated authentication, you don't have to invent your own authentication protocol or manage a user database. By using access control lists (ACLs), impersonation, and features such as groups, you can implement authorization with very little code. Indeed, this advice applies no matter which OS you are using. It's almost always a better idea to integrate closely with the security features in your OS rather than reinventing those features yourself. But what happens when you want to extend reach to users who don't happen to have Windows accounts? What about users who aren't running Windows at all? More and more applications need this type of reach, which seems to fly in the face of traditional advice. This book gives you enough information to evaluate claims-based identity as a possible option when you're planning a new application or making changes to an existing one. It is intended for any architect, developer, or information technology (IT) professional who designs, builds, or operates Web applications and services that require identity information about their users.
Dominick Baier splits his time between being an independent security consultant and an instructor for DevelopMentor - teaching and authoring the ASP.NET and the .NET security curriculum. He has a degree in computer science (German Diplom Ingenieur), is a certified BS7799/ISO17799 Lead Auditor and speaks at various conferences (WinDev, DevWeek, ADC) about application security. When not teaching he spends his time researching security, doing audits and penetration tests and helps other developers around the world to build more secure applications. Dominick maintains a security blog at http://www.leastprivilege.com.
Vittorio Bertocci is a Senior Architect Evangelist in the Windows Azure Platform Evangelism team with Microsoft® Corp. After four years in the Italian Microsoft Consulting Services, Vittorio moved to the U.S. headquarters in Redmond, where he has spent the past four years helping customers deploy solutions based on identity and access management, SOA, and services. He currently focuses on all things identity, working with the developer's community, large enterprises and partners. Vittorio is a published author; he frequently speaks about identity at international conferences and maintains a popular blog at http://blogs.msdn.com/vbertocci.
Keith Brown is a co-founder of Pluralsight, a premier Microsoft® .NET training provider. Keith is the author of Pluralsight's Applied .NET Security course as well as several books, including The .NET Developer's Guide to Windows® Security, which is available both in print and on the Web. Learn more at www.pluralsight.com/keith
Matias Woloski is an Enterprise Architect at Southworks S.R.L. He's been involved in software development for 6 yeasr. Currently, he's working with the patterns & practices team at Microsoft® in a Scrum-driven project. He maintains a blog at http://blogs.southworks.net/mwoloski/
Eugenio Pace is a Senior Program Manager in the patterns & practices group at Microsoft®. He is responsible for developing guidance for migrating and building application for the Windows Azure® platform and for Windows® Phone 7. Before that he worked on architecture guidance for claims based identity and identity federation. You can find his blog here: http://blogs.msdn.com/eugeniop and on twitter @eugenio_Pace.
this book presents the topic of claims-based identity - a very dense and feature rich topic - in a simple < 150 page book. it even includes examples that easy to follow.
now what is wrong with the book?
* it would be nice if included examples (screen shots) of working with the ADFS 2.0 Manager Windows 2008 server. i think this is germane tdn'to the overall topic, would have been nice to have it online too.
* would have been nice to provide some direction on a custom provider that uses both AD and SQL server.
This book attempts to cover only one aspect of Identity Management and Access Control, that of Claims-based systems, which have become increasingly popular and more adapted in recent years (see SharePoint 2010 if you have any doubt). While covering claims in depth with code samples, and real-world scenarios such as federated identity for web-based applications, the book also uses visually appealing means to do so. The diagrams are like those you'd see on any whiteboard, and the personalities presented in the book are definitely like those you'd come across in any Enterprise IT shop.
My detractors for this book are as follows:
1) It's too brief (100 pgs). Just as a chapter seems to be heading in the right direction, it tends to taper off.
2) Code samples start in chapter 3, some 33 pages into the book, which seems quite big for an intro and basic concepts. That being said, some of the later chapters are heavily code-laden and the context for these scenarios seems a little light.
3) Maybe it's the fact that it's a relatively nascent technology, but it seems more real-world tips should be included. This is a Microsoft-originated publication, but I think it would have benefitted from real-world experience.
4) Lack of coverage of the other identity offerings, and putting them in context. A flowchart or series of tables which explains where Claims fit into the alphabet soup of identity offerings would have probably given this book more credibility.
That being said, if you're looking for a solid coverage of Claims and when/how to use them, this is a great book as a starting point.