<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Authentication &amp; Authorization on Spinnaker</title>
		<link>https://deploy-preview-637--spinnaker-io.netlify.app/docs/reference/architecture/authz_authn/</link>
		<description>Recent content in Authentication &amp; Authorization on Spinnaker</description>
		<generator>Hugo</generator>
		<language>en</language>
		
		
		
		
			<atom:link href="https://deploy-preview-637--spinnaker-io.netlify.app/docs/reference/architecture/authz_authn/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Authentication Architecture</title>
				<link>https://deploy-preview-637--spinnaker-io.netlify.app/docs/reference/architecture/authz_authn/authentication/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://deploy-preview-637--spinnaker-io.netlify.app/docs/reference/architecture/authz_authn/authentication/</guid>
				<description>&lt;h2 id=&#34;authentication&#34;&gt;Authentication&lt;/h2&gt;&#xA;&lt;p&gt;There are three basic players in Spinnaker&amp;rsquo;s authentication workflow:&lt;/p&gt;&#xA;&lt;div class=&#34;mermaid&#34;&gt;&#xA;  &#xA;graph LR&#xA;classDef default fill:#d8e8ec,stroke:#7a8288;&#xA;linkStyle default stroke:#7a8288, stroke-width:2px, fill:none;&#xA;&#xA;gate(Gate)&#xA;idp(IdentityProvider)&#xA;deck(Deck/Browser)&#xA;&#xA;deck--&gt;gate&#xA;gate--&gt;deck&#xA;deck--&gt;idp&#xA;idp--&gt;deck&#xA;&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Deck&lt;/strong&gt;: Spinnaker&amp;rsquo;s UI. Consists of a set of static HTML, JavaScript, and CSS files. Generally&#xA;served from an Apache server, but there is nothing special about Apache that makes Deck work.&#xA;Replace with your favorite HTTP(S) server if you&amp;rsquo;d like.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Gate&lt;/strong&gt;: Spinnaker&amp;rsquo;s API Gateway. All traffic (including traffic generated from Deck) flows&#xA;through Gate. It is the point at which &lt;em&gt;authentication&lt;/em&gt; is confirmed and one point (of several)&#xA;where &lt;em&gt;authorization&lt;/em&gt; is enforced.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Authorization Architecture</title>
				<link>https://deploy-preview-637--spinnaker-io.netlify.app/docs/reference/architecture/authz_authn/authorization/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://deploy-preview-637--spinnaker-io.netlify.app/docs/reference/architecture/authz_authn/authorization/</guid>
				<description>&lt;h2 id=&#34;ingress&#34;&gt;Ingress&lt;/h2&gt;&#xA;&lt;p&gt;Ingress involves the following components:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Clouddriver.&lt;/li&gt;&#xA;&lt;li&gt;Front50 to query apps and service accounts.&lt;/li&gt;&#xA;&lt;li&gt;Gate signs users in with externally provided roles (e.g. OpenID Connect, SAML). These roles are then merged with provider sourced roles (if any), tagged with the &lt;code&gt;EXTERNAL&lt;/code&gt; source, and cached in Redis.&lt;/li&gt;&#xA;&lt;li&gt;Igor gets the list of build systems and roles required to access them.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;egress&#34;&gt;Egress&lt;/h2&gt;&#xA;&lt;p&gt;Egress involves the following components:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Redis stores computed roles, default permissions, and roles from external systems.&lt;/li&gt;&#xA;&lt;li&gt;Clouddriver gets known accounts.&lt;/li&gt;&#xA;&lt;li&gt;Front50 gets known apps.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;scaling&#34;&gt;Scaling&lt;/h2&gt;&#xA;&lt;p&gt;Fiat can be scaled by adding replicas. &lt;code&gt;fiat.writeMode.enabled&lt;/code&gt; dictates if the Fiat instance will try to sync&#xA;roles. Fiat instances coordinate around locks (in Redis) to ensure that only one instance synchronizes roles at a time.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
