While the question isn't an exact duplicate, the answer essentially is, so I'm going to quote this answer by Pieter Wuille:
As is normal when doing Elliptic Curve encryption, a private key is
simply a random number. In the case of secp256k1, the elliptic curve
used by Bitcoin, it has to be a number between 1 and
(or in hexadecimal, between 1 and
This private key is converted to a public key by performing an EC
point multiplication with the curve's base point. The result is an
(x,y) coordinate pair, which constitutes the public key.
Finally, RIPEMD160(SHA256(pubkey)), where pubkey is a serialization of
those coordinates, is computed, and encoded in base58, together with a
checksum. This becomes the address.
So the short answer is yes, as long as the resulting hash is less than or equal to FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551 any SHA256 hash is an acceptable privkey.
As for a canonical method of mapping a passphrase to a privkey, I don't believe there is one - after all, this functionality isn't built into the Satoshi client (at least not yet) so there cannot, by definition, be a canonical method. The closest thing I can think of would be the mini private key format used by Casascius physical bitcoins, which could easily be used with a passphrase instead. Indeed Casascius' Bitcoin Address Utility is often the app of choice for those wishing to make "mental wallets" from memorized passphrases rather than random inputs.